我有两个点击事件,其中一个有一个 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/