我在一个jsp文件中有一个带有class属性和href属性的锚标记(即Cancel按钮)。
我已经在一个单独的js文件中为类属性编写了一个onclick
事件。因此,当单击该按钮时,onclick事件将执行,然后转到href链接。
当该按钮被多次单击时,它会将我带到一个空页或错误页。
我想防止超过一次点击按钮。
我尝试在我的onclick()
函数中使用event.preventdefault()
函数,但是如果我这样做,href链接就不起作用了。还有别的办法吗?
我的JS代码:
$('.cancel-btn').on('click',function(evt){
//evt.preventDefault();
//My Code
});
发布于 2017-07-08 14:44:20
jQuery one()
方法将只执行一次单击事件:
$('.cancel-btn').one('click',function(evt){
// evt.preventDefault();
// code here
});
也可以使用jQuery on()
方法,当事件应该有条件地删除时,该方法可能更有用:
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();
}
});
或者像这样:
$('.cancel-btn').on('click', function(evt) {
// code here
// then remove the event handler.
$(this).off('click');
});
发布于 2017-07-08 14:47:09
尝试使用布尔标志来确保函数只执行一次
var executeOnce = false;
$('.cancel-btn').on('click',function(evt){
if(!executeOnce){
//evt.preventDefault();
//My Code
executeOnce = true;
}
});
发布于 2017-07-08 14:53:17
下面是使用指针事件as none https://jsfiddle.net/w2wnuyv6/1/的另一种方法
$('a[value="cancel"]').click(function(){
$(this).css({
'pointer-events': 'none'
});
});
https://stackoverflow.com/questions/44983307
复制相似问题