仅在功能准备就绪时单击可用

时间:2014-01-04 19:35:15

标签: javascript jquery

我已经创建了一个jquery函数来验证值,编辑隐藏的表单并根据值隐藏/显示div。类似于在商店购物篮中添加/删除商品。当用户以正常速度点击时,此功能正常。

然而,当用户点击非常快时,出现问题。将产品添加到购物篮并进行验证会混淆,这会导致结果。

如何在执行功能时禁用单击?

我只是用普通的点击功能调用add函数:

$('.add').click(add);

3 个答案:

答案 0 :(得分:0)

您可以在单击并在功能完成后直接或使用回调重新启用时禁用按钮或超链接:

$(".add").click(add);

function add(event) {
   $(".add").attr({disabled: "disabled"});
   // .... some code
   $(".add").removeAttr("disabled");
}

但是,属性disabled在每个浏览器中可能无法正常工作;它可能只适用于表单元素而不是超链接(例如a)。

另一种解决方案是限制事件处理程序,例如使用UnderscoreJS's throttle method

答案 1 :(得分:0)

一个简单的解决方案,但你必须使用按钮。

var buttons = $(".add");
buttons.click( function(){
    buttons.attr("disabled","disabled");
    //Do your job and don't forget to remove 'disabled'
});

答案 2 :(得分:0)

$(".add").bind('click', function(){
    console.log('bound');
});

$(".add").unbind('click');

使用bind和unbind函数