javascript - Jquery 中止来自另一个事件的 ajax 调用

标签 javascript jquery ajax

我有两个点击事件,其中一个有一个 ajax 调用,为了清楚起见,这可能是点击事件 A。我有另一个点击事件,我们称其为点击事件 B。

我注意到,如果我连续多次快速点击 A,然后点击 B,事件就会排队,甚至在事件 B 执行之后,A 的 ajax 也会被调用。

当我点击 B 时,我希望所有从 A 执行的 ajax 调用完全停止。

内部点击事件 A 我有:

$("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();
});

但是上面的不行。有没有一种方法可以清除从 A 执行的积压事件?

最佳答案

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

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

它对你有用吗?

关于javascript - Jquery 中止来自另一个事件的 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7363720/

相关文章:

javascript - AJAX 聊天应用程序的刷新率

Ajax 错误 : SyntaxError: expected expression, 得到 '<'

javascript - 页面上的 iFrame,在显示 iFrame 之前等待所有 iFrame 内容加载完毕

javascript - Uncaught Error : Module did not self-register

javascript - jQuery Mobile 弹出窗口/通知

javascript - 检测请求是否是 jQuery 中的帖子

javascript - 如何在菱形 div 中居中图像? - CSS,HTML

php - 单击并保存更改时如何更改表格行的颜色

JavaScript 构造函数在定义属性时返回解析错误

java - 如何区分Processing sketch运行的模式(Java/JS/Android)?