首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何防止多次单击Anchor tag按钮

如何防止多次单击Anchor tag按钮
EN

Stack Overflow用户
提问于 2017-07-08 14:39:22
回答 4查看 3.1K关注 0票数 10

我在一个jsp文件中有一个带有class属性和href属性的锚标记(即Cancel按钮)。

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

当该按钮被多次单击时,它会将我带到一个空页或错误页。

我想防止超过一次点击按钮。

我尝试在我的onclick()函数中使用event.preventdefault()函数,但是如果我这样做,href链接就不起作用了。还有别的办法吗?

我的JS代码:

代码语言:javascript
复制
$('.cancel-btn').on('click',function(evt){
            //evt.preventDefault();
           //My Code            

        });
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-07-08 14:44:20

jQuery one()方法将只执行一次单击事件:

代码语言:javascript
复制
$('.cancel-btn').one('click',function(evt){
  // evt.preventDefault();
  // code here            
});

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

代码语言:javascript
复制
let 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();
  }
});

或者像这样:

代码语言:javascript
复制
$('.cancel-btn').on('click', function(evt) {
  // code here
  // then remove the event handler.
  $(this).off('click');
});
票数 11
EN

Stack Overflow用户

发布于 2017-07-08 14:47:09

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

代码语言:javascript
复制
var executeOnce = false;
$('.cancel-btn').on('click',function(evt){
   if(!executeOnce){
     //evt.preventDefault();
     //My Code  
     executeOnce = true;
   }     
});
票数 5
EN

Stack Overflow用户

发布于 2017-07-08 14:53:17

下面是使用指针事件as none https://jsfiddle.net/w2wnuyv6/1/的另一种方法

代码语言:javascript
复制
$('a[value="cancel"]').click(function(){
    $(this).css({
        'pointer-events': 'none'
    });
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44983307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档