Javascript 使单击仅在功能就绪时可用

Javascript 使单击仅在功能就绪时可用,javascript,jquery,Javascript,Jquery,我制作了一个jquery函数,它根据一个值验证值、编辑隐藏表单和隐藏/显示div。类似于向购物篮添加/删除项目。当用户以正常速度单击时,此功能可以正常工作 然而,当用户快速点击时,就会出现问题。向购物篮中添加产品和验证是混淆的,这会导致结果混乱 如何在函数执行时禁用单击 我只是用一个普通的单击函数调用add函数: $('.add').click(add); 您可以在单击后禁用按钮或超链接,并在直接或通过回调完成该功能时重新启用: $(".add").click(add); function

我制作了一个jquery函数,它根据一个值验证值、编辑隐藏表单和隐藏/显示div。类似于向购物篮添加/删除项目。当用户以正常速度单击时,此功能可以正常工作

然而,当用户快速点击时,就会出现问题。向购物篮中添加产品和验证是混淆的,这会导致结果混乱

如何在函数执行时禁用单击

我只是用一个普通的单击函数调用add函数:

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

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

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

function add(event) {
   $(".add").attr({disabled: "disabled"});
   // .... some code
   $(".add").removeAttr("disabled");
}
但是,属性
已禁用
在每个浏览器中的工作方式可能不同;例如,它可能只适用于表单元素,而不适用于超链接(
a


另一个解决方案是限制事件处理程序,例如使用。

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

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

使用绑定和取消绑定功能

浏览器一次只处理一个事件。你必须发布更多的代码,以便让人们看到正在发生的事情。确保事件是
a·syn·chro·nous
,然后。
异步的
不是异步的-u-Ah好的,你纠正了它:我使用了更新的.on()和.off()函数,但想法是一样的。谢谢
$(".add").bind('click', function(){
    console.log('bound');
});

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