2010-04-15 102 views
0

我目前正在使用這個ajax排隊插件http://www.onemoretake.com/2009/10/11/ajaxqueue-and-jquery-1-3/,它工作正常,除了weh ajax調用1完成,ajax調用2啓動依賴於成功函數的值當ajax 1完成時產生。我以前的成功完成後如何獲得ajax調用

當前一個調用完成並且成功函數已經運行時,是否有辦法啓動所有ajax調用?

感謝


我得到了它kindof這個工作.. ClientID的觸發AJAX,並返回一個JSON結構..這填充下拉建設,建築觸發器調用另一個AJAX,但第一個Ajax調用後被觸發是成功的,但在成功功能完成之前..使用延遲是不可靠的..任何想法?

var body = $('body'); 
body.queue('bodyQueue', function(){ $('#Client_ID').trigger('change'); $(this).dequeue('bodyQueue');}).delay(1000, 'bodyQueue'); 

body.queue('bodyQueue', function(){ $('#Building_ID').trigger('change'); $(this).dequeue('bodyQueue');}); 
body.dequeue('bodyQueue'); 

更妙的是,如果我可以停止和啓動AJAX隊列,這將是更好的,這可能嗎?

回答

0

jQuery的AJAX庫支持完成處理程序(success)。將第二個AJAX調用放在第一個調用的success方法中,依此類推。

+0

是有辦法讓它作爲全球Ajax調用是動態的,可以是任何東西或沒有 – Alessandro 2010-04-15 04:37:46

+0

對不起,但我不確定你的意思,「可能是什麼也沒有」。 AFAIK,沒有辦法設置全局完成處理程序。 – 2010-04-15 09:10:48

0

感謝隊友..

其周圍代碼生成

工作圍繞它像這樣..內置

再經過Ajax和功能做什麼它做它調用觸發傳遞ID ,觸發下一個排隊..有些冒險..但工作

triggerQ = []; 
    triggerQ.push("Client_ID"); 
    triggerQ.push("Building_ID"); 
triggerNext();}); 

    function triggerNext(id){ 
    var trigger; 
    if (id) { 
     for(i=0;i<triggerQ.length;i++) { 
      if (triggerQ[i] == id) { 
       if (triggerQ[i+1]) { 
        trigger =triggerQ[i+1]; 
       } 
      } 
     } 
    } else { 
     trigger = triggerQ[0]; 
     } 
    if (trigger) $('#'+trigger).trigger('change'); 
    }