Jquery off() 用于特定元素

Jquery off() for a specific element

本文关键字:元素 用于 off Jquery      更新时间:2023-09-26

我有一个表格,其中我用class="shift"将所有元素绑定到一个点击函数。

现在,因为我还需要在元素的一部分上使用另一个单击事件,所以我想在鼠标进入元素时取消绑定元素上的单击事件,并在我离开时重新绑定(用于某些触摸事件等等)

现在,我这样绑定

$("table").on("touchstart mousedown",".shift", function(e){ ... })

但是当我尝试取消绑定特定元素时,假设它添加了 class="selected" 以区分我使用的当前元素:

$("table").off("touchstart mousedown",".shift.selected")

这行不通....

我可以一次删除所有处理程序

,但是删除所有处理程序并在鼠标离开后立即重新插入它们是浪费。

那么,在事件绑定到所有当前和未来的元素后,有没有办法删除单个元素上的处理程序?

提前感谢!

鼠标

进入时,无需取消绑定元素上的单击事件。我知道,当您单击绑定了单击事件的内部元素时,将触发元素单击事件,对吗?你可以阻止它:

内部元素的单击处理程序必须如下所示:

$("some inner element").click(function(event) {
    //That's what are you looking for ;)
    event.stopPropagation();
    //You code here
});

event.stopPropagation()将防止事件在 DOM 树中冒泡,从而防止任何父处理程序收到事件的通知。