【发布时间】:2015-02-26 03:10:09
【问题描述】:
按钮单击触发 ajax 请求。当用户在第一个请求仍在加载时第二次单击该按钮时,我想用另一个请求覆盖第一个请求的成功函数。
基本上我想这样做:
var ajaxRequest = null;
jQuery('#mybutton').click(function () {
if (ajaxRequest) {
ajaxRequest.success = function () {
};
}
ajaxRequest = jQuery.ajax({
url: '...',
success: function () {
console.debug('do something');
}
});
});
但是调用了初始成功处理程序。 如何实现覆盖?
【问题讨论】:
-
您要覆盖的用例是什么?使用您提供的代码 sn-p,第二行似乎是多余的。
-
按钮点击触发 ajax 请求。当用户在第一个请求仍在加载时第二次单击该按钮时,我想用另一个请求覆盖第一个请求的成功函数。
-
成功函数是做什么的?也许您可以使用一些动态 DOM 操作来代替?
-
如何实现覆盖?...嗯,我想它不应该是必需的。但是您是否也要在其他地方使用响应数据?
-
让我描述一下我的用例——如果我单击按钮,就会触发一个 jQuery.ajax 请求。如果您单击第二次、第三次、第四次、第五次、.. 次,当前请求(如果存在)应该得到一个空的成功处理程序( function() {} ),因此只有最后一个请求应该有正确的成功处理程序。我将更新我上面的代码来解释我的意思。
标签: javascript jquery ajax