jQuery多次单击事件

我被迫使用从外部服务器加载的脚本。

这个脚本基本上添加了一个元素

并将click方法绑定到它。

问题是,在与元素关联的click函数中,它们在结尾处有一个return false语句。

我也有自己的脚本,我正在尝试使用$(document).on('click', '.myClass', function() { ... })click方法添加到同一个元素中

我的问题是之前触发了它们的事件,并且它们的函数中的return false不会触发我自己的click方法。

我试过在我们的脚本之前加载我的脚本,但这并没有解决问题。 我已经阅读了关于取消绑定然后重新绑定的内容,但我不确定这是一个不错的选择,因为他们的代码随时都可能发生变化。

还有什么我可以尝试的吗?

问题是事件委托取决于冒泡到绑定处理程序的元素的事件。 当它们的处理程序返回false时,这会阻止冒泡。

在添加后,您必须将处理程序直接绑定到元素:

 $(".myClass").click(function() { ... }); 

您需要使处理函数返回false ..它可以防止事件冒泡。

在您的标记html中,您必须编写如下内容:

  

或者如果你使用jQuery:

 $(".btn").on('click', function (event){ //do stuff.. return false; }); 

在你的onLoad中为什么不向myClass div添加一个新类,然后为新类设置一个事件监听器。

 $(".myClass").addClass("myClass2"); $(".myClass2").on('click', function() { ... }) 

我刚才遇到了同样的问题。 我是如何修复它的,我在该元素上添加了另一个类:

 $(document).load(function() { $(".myClass").addClass("myNewClass"); }); 

而不是将点击事件绑定到该类,如下所示:

 $(document).on("click", ".myNewClass", function () { ... }); 

这对我myNewClass ,因为它用myNewClass click事件覆盖了myClass类。

试试这个:

 $(document).on('click', '.myClass', function(e) { e.preventDefault(); ... ... })