2010-04-15 156 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'); 
    } 
相关问题