jQuery多点单击事件

jQuery多点单击事件,jquery,jquery-events,Jquery,Jquery Events,我被迫使用从外部服务器加载的脚本 此脚本基本上添加了一个元素,并将单击方法绑定到该元素 问题是,在与元素关联的click函数中,它们在末尾有一个return false语句 我也有自己的脚本,我正在尝试使用$(document)向同一元素添加click方法 我的问题是,它们的事件是在之前触发的,它们函数中的return false不会触发我自己的click方法 我尝试在他们之前加载我的脚本,但这并没有解决问题。 我读过关于解除绑定然后重新绑定的文章,但我不确定这是一个好的选择,因为他们的代码随时

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

此脚本基本上添加了一个元素
,并将
单击方法绑定到该元素

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

我也有自己的脚本,我正在尝试使用
$(document)向同一元素添加
click
方法

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

我尝试在他们之前加载我的脚本,但这并没有解决问题。 我读过关于解除绑定然后重新绑定的文章,但我不确定这是一个好的选择,因为他们的代码随时都可能更改


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

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

$(".myClass").addClass("myClass2");

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

问题在于,事件委派依赖于事件冒泡到您绑定处理程序的元素。当它们的处理程序返回false时,这将防止冒泡

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

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

我最近也有同样的问题。如何修复它,我在该元素上添加了另一个类:

$(document).load(function() {
    $(".myClass").addClass("myNewClass");
});
然后将单击事件绑定到该类,如下所示:

$(document).on("click", ".myNewClass", function () { ... }); 
这对我来说很有效,因为它用
myNewClass
单击事件重写了
myClass
类。

试试这个:

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

您需要使处理程序函数返回false。。它防止事件冒泡

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

<button type="button" class="btn" onclick="myHandler(); return false;"></button>

一种方法是将事件作为参数传递,并对脚本使用
event.preventDefault()
。@DipeshParmar我不确定我是否理解。我将在何处传递此事件?能否尝试事件名称空间
$(文档)。在('click.namespace'、'.myClass',function(){…})上
此操作有效!非常感谢。我试图用.on方法编写更少的代码,但似乎不行。非常感谢。虽然这是真的,但这不是我所要求的,但无论如何还是要谢谢你。
$(".btn").on('click', function (event){ 
    //do stuff..
    return false;
});