偶然发现一个恼人的问题 - 最初人们可以双击将产品添加到购物车TWICE。我使用了似乎有帮助的one()函数,但我发现它添加了一个bug。请看一下代码:
$('#add_now').one('click touchstart', function(){
if(option != null) // "if an item is selected" check
{
// ajax request to add to cart
}
else{
$('#report').hide().html('<span style="color: #af0000;">Please choose quantity!</span>').fadeIn('500').delay(2000).fadeOut(500);
}
return false;
});
所以现在,它只能运行一次,所以如果选择了任何内容 - 显示错误信息,但之后人们即使选择产品也无法添加任何内容。这是因为 one()函数会阻止脚本多次触发。我可以在&#34之后重新加载页面;请选择数量&#34;报告,但这是一个蹩脚的解决方案。嗯.....
所以,基本上 - 如果我将一个()更改回点击() - 它将会起作用,它应该可以解决双重问题添加双击。
答案 0 :(得分:1)
使用超时:
var clickDisable;
$("button").click(function () {
if(!clickDisable) {
clickDisable = setTimeout(function(){
clickDisable = false;
}, 500);
//Do something
}
});
这可以防止按钮在单击后执行500ms的操作。