2011-08-03 8 views
0

は奇妙な状況だ.....Ajaxの機能と非同期:ここに偽

私は編集することはできません機能を持って(何らかの理由で、私はそれを使用する代わりに、新しい1を作成したり、上書きする必要があります。このスクリプトは、...許可されていません)

function update_tpl2(form, divtoupdate, exeAlert) { 
if(!$('#'+form).length) 
    form = 'myform'; 
if(!$('#'+divtoupdate).length) 
    divtoupdate = 'ajax_update'; 

$.ajax({ 
    type: "POST", 
    url: url, 
    data: $('#' + form).serialize(), 
    dataType: "html", 
    beforeSend: ShowLoading, 
    success: function(resp){ 
     $('#theLoading').dialog('close'); 
     $('#loading').html('');   
     $('#' + divtoupdate).html(resp); 
    } 
}); 

}

と私は非同期追加する必要がありますとき、実行することを関数にはfalse。 ajaxを非同期に設定する方法はありますか?関数を変更せずに使用することによってfalseにするには.....

答えて

0

これはおそらく何か?

ちょうど= {非同期:偽}プロパティと、次の関数を呼び出す

function update_tpl2(form, divtoupdate, exeAlert, properties) { 
if(!$('#'+form).length) 
    form = 'myform'; 
if(!$('#'+divtoupdate).length) 
    divtoupdate = 'ajax_update'; 

var defaultProps = { 
    type: "POST", 
    url: url, 
    data: $('#' + form).serialize(), 
    dataType: "html", 
    beforeSend: ShowLoading, 
    success: function(resp){ 
     $('#theLoading').dialog('close'); 
     $('#loading').html('');   
     $('#' + divtoupdate).html(resp); 
    } 
} 

jQuery.extend(true, defaultProps, properties) 

$.ajax(defaultProps); 
+0

が、Uはupdate_tpl2関数DYを変更します。これはしないでくださいね^^しかし、 – Leon

+0

エイ、あなたはそれの内容を変更しようとするが、ロジックは同じままにする必要があります。このようにして、プロパティ入力引数を使用して動作を変更できます。これが本当に不可能な場合は、別の方法があるかもしれません。しかし、その恐ろしい解決策!あなたは 'jQuery.ajaxSetup({async:false})を設定するような何かをすることができます。 update_tpl2(.....); jQuery.ajaxSetup({async:true}) '。最初にデフォルト値としてasync:falseを設定してから、関数を呼び出してから、完了時にasync:trueにリセットします。詳細はこちらhttp://api.jquery.com/jQuery.ajaxSetup – netbrain

関連する問題