使用jQuery' off()和on()和匿名函数

时间:2015-02-19 19:35:10

标签: javascript jquery

我希望在ajax请求完成之前禁用多次点击。我已经看过使用全局变量的解决方案,但感觉使用offon会更优雅。 Ajax, prevent multiple request on click描述了使用offon,但是使用命名函数(而不是匿名函数)。如何通过匿名功能实现这一目标?如果不可能,在ajax请求完成之前,禁用事件的最佳方法是什么?

$("#button").click(function(){
    //Remove anonymous  function
    $.post('delay.php',function(x) {
        console.log('done '+x);
        //Add back anonymous function
    })
});

1 个答案:

答案 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);
    })
});