我试图阻止链接和项目的多次点击,这是导致问题。
我使用jQuery将点击事件绑定到按钮(jQuery UI)和图像链接(< a>< img />< / a>)。
有一种方法可以一次性防止点击发生后其他事件触发?
或者我必须保留一个名为_isProcessing的全局变量,并将其设置为每个事件处理程序的true?
谢谢
编辑:(澄清)
感谢您的答案,我的问题并不是阻止事件冒泡,而是阻止多次并发点击。
解决方法
有多种方法可以防止并发点击运行代码。
一种方法是在元素上取消绑定(“点击”),然后在准备就绪时再次绑定(.bind())。
我宁愿使用某种旗帜。它可以是一个变量,但是我宁愿为元素分配一个类,如.processing,并在完成后将其删除。所以你会让处理程序检查该类的存在来确定代码应该运行。
$('someElement').click(function() { var $th = $(this); if($th.hasClass('processing')) return; $th.addClass('processing'); // normal code to run // then when done remove the class $th.removeClass('processing'); });
另一个选择是使用元素.data()设置一个类似的标志,如$(this).data(‘processing’,true);完成后将其设置为false。