2011-08-03 2 views
0
여기

있어 이상한 상황 거짓 .....아약스 기능 및 비동기 :.

내가 어떤 이유로 (편집 할 수있는 기능을 가지고 그리고 난 그것을 사용하는 대신 새로운 일을 만들거나 덮어 쓸 필요 스크립트는 ... 허용되지 않음)

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); 
    } 
}); 

}

그리고 난 비동기 추가해야 할 때 실행하는 함수에 잘못된. ajax를 비동기로 설정하는 방법은 없습니다. 함수를 변경하지 않고 사용하면 ..... .....

답변

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

하지만 유는 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