猿问

js 如何防止事件在ajax返回结果之前重复执行

我的目的是点击按钮一次,会发送ajax,等返回后,才允许再次执行发送的ajax。按钮不能隐藏。
目前想法是,点击一次解绑事件,然后等返回结果后再次绑定,所以把事件代码写成了函数。

但写成函数时,遇到一个不理解的问题:

这样一打开页面就自动执行了。

    $('.start').one('click', test());    function test(){
        alert('我执行了');        //此处执行ajax等待返回结果再次绑定
        $('.start').one('click', test());
    }

这样直接写就打开不会自动执行

    $('.start').one('click', function(){
        alert('我执行了');
    });

为什么写成函数就会自动执行呢?还是有其他简单的方法实现?


慕森王
浏览 761回答 1
1回答

肥皂起泡泡

你这两种情况,都没按你的意思执行,下面的代码,你绑定test(),可不直接执行了。。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答