我希望在ajax请求完成之前禁用多次点击。我已经看过使用全局变量的解决方案,但感觉使用off
和on
会更优雅。 Ajax, prevent multiple request on click描述了使用off
和on
,但是使用命名函数(而不是匿名函数)。如何通过匿名功能实现这一目标?如果不可能,在ajax请求完成之前,禁用事件的最佳方法是什么?
$("#button").click(function(){
//Remove anonymous function
$.post('delay.php',function(x) {
console.log('done '+x);
//Add back anonymous function
})
});
答案 0 :(得分:3)
尝试使用此代码。
HTML:
<button id="button" type="button">Click Me!</button>
使用Javascript:
$("#button").click(function(){
var that = this;
$(this).attr("disabled","disabled");
$.post('delay.php',function(x) {
$(that).removeAttr("disabled");
console.log('done '+x);
})
});