Jquery从另一个事件中止ajax调用

mel*_*lon 3 javascript ajax jquery

我有两个点击事件,其中一个有一个ajax调用,为了clairty,这可能是点击事件A.我有另一个点击事件,让我们调用这个点击事件B.

我注意到如果我一直快速点击A多次然后点击B,事件就会排队,即使事件B执行完毕,A的ajax也会被调用.

当我点击BI时,希望所有ajax调用完全停止,这是从A执行的.

内部点击事件AI有:

$("A").live("click", function(event) {
    var ajax_call = $.ajax({ /* Some code goes here */ });
});

$("B").live("click", function(event) {
    /* Some code goes here */
   ajax_call.abort();
});
Run Code Online (Sandbox Code Playgroud)

但上述方法无效.有没有办法可以清除A中积压的事件?

Tad*_*eck 6

您面临的问题可能与称为闭包的概念有关.第二个回调无法访问第一个回调中的变量.解决方案可能如下:

var ajax_call;

$("A").live("click", function(event) {
    ajax_call = $.ajax({ /* Some code goes here */ });
});

$("B").live("click", function(event) {
    /* Some code goes here */
    ajax_call.abort();
});
Run Code Online (Sandbox Code Playgroud)

对你起作用吗?

  • @Joel:不是令人毛骨悚然,你刚刚找到了正确的解决方案:) 56秒后,但很难发布完全不同的答案. (2认同)