如何防止多次单击Anchor标记按钮

Jok*_*ean 10 javascript jquery

我有一个锚标记(即取消按钮),在jsp文件中有一个class属性和href属性.

onclick在一个单独的js文件中为class属性编写了一个事件.因此,当单击该按钮时,onclick事件将执行,然后转到href链接.

当多次单击该按钮时,它会将我带到空白页面或错误页面.

我想阻止多次点击按钮.

我已经尝试event.preventdefault()在我的onclick()函数中使用函数,但如果我这样做,href链接不起作用.还有其他方法吗?

我的JS代码:

$('.cancel-btn').on('click',function(evt){
            //evt.preventDefault();
           //My Code            

        });
Run Code Online (Sandbox Code Playgroud)

Roh*_*rma 11

jQuery one()方法只执行一次click事件:

$('.cancel-btn').one('click',function(evt){
   //evt.preventDefault();
   //code here            
});
Run Code Online (Sandbox Code Playgroud)

也可以使用jQuery on()方法,当有条件地删除事件时可能更有用:

var count = 0;    //or may be a boolean flag
$('.cancel-btn').on('click', function(evt){
    if (count == 0) {
        count++;
        //code here
    } else {
        return false;
        //or evt.preventDefault();
    }
});
Run Code Online (Sandbox Code Playgroud)

或者像这样:

$('.cancel-btn').on('click', function(evt) {
    //code here
    //then remove the event handler.
    $(this).off('click');
});
Run Code Online (Sandbox Code Playgroud)

  • 好答案![链接到源代码](http://api.jquery.com/one/)总是更好,并直接在帖子中提供相关细节 - "..one()`与`.on()相同`除了处理程序在第一次调用后未绑定." (2认同)

Ank*_*wal 5

尝试使用布尔标志来确保该函数只执行一次

var executeOnce = false;
$('.cancel-btn').on('click',function(evt){
   if(!executeOnce){
     //evt.preventDefault();
     //My Code  
     executeOnce = true;
   }     
});
Run Code Online (Sandbox Code Playgroud)