jquery t防止第二次点击

时间:2016-01-30 18:38:12

标签: jquery

偶然发现一个恼人的问题 - 最初人们可以双击将产品添加到购物车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;报告,但这是一个蹩脚的解决方案。嗯.....

所以,基本上 - 如果我将一个()更改回点击() - 它将会起作用,它应该可以解决双重问题添加双击。

1 个答案:

答案 0 :(得分:1)

使用超时:

var clickDisable;
$("button").click(function () {
    if(!clickDisable) {
        clickDisable = setTimeout(function(){
            clickDisable = false;
        }, 500);
        //Do something
    }
});

这可以防止按钮在单击后执行500ms的操作。