gpt4 book ai didi

javascript - 关闭特定的点击事件

转载 作者:太空宇宙 更新时间:2023-11-04 14:01:05 25 4
gpt4 key购买 nike

JSFIDDLE:http://jsfiddle.net/w55usyqk/

当您单击 div 时,会触发两个单独的单击事件。他们在控制台日志中分别打印出“click”和“clicked”。

$("div").on("click", function() { console.log("click"); });
$("div").on("click", function() { console.log("clicked"); });

如果您点击按钮,它将从 div 对象中删除两个事件声明

$("button").on("click", function() { $("div").off("click"); });

但是,如果我只需要删除一个单击事件怎么办?这是否存储在某种事件数组中,我可以按照 $("div").off("click")[1]; 的方式做一些事情?还是不可能在不关闭另一个的情况下关闭一个?

如果以前发布过,我确实尝试寻找答案。我认为这是难以用语言表达的问题之一,因此尽管可能有答案,但很难确定。

最佳答案

您可以使用 namespace 轻松地做到这一点。创建事件处理程序时,在事件之后添加命名空间。例如:

$("div").on("click.namespace1", function() { console.log("click"); });
$("div").on("click.namespace2", function() { console.log("clicked"); });

然后对于您的按钮,使用事件的命名空间来删除​​:

// remove only the event for namespace2
$("button").on("click", function() { $("div").off(".namespace2"); });

jsFiddle example

关于 namespaces for events 的更多信息:

An event name can be qualified by event namespaces that simplify removing or triggering the event. For example, "click.myPlugin.simple" defines both the myPlugin and simple namespaces for this particular click event. A click event handler attached via that string could be removed with .off("click.myPlugin") or .off("click.simple") without disturbing other click handlers attached to the elements. Namespaces are similar to CSS classes in that they are not hierarchical; only one name needs to match. Namespaces beginning with an underscore are reserved for jQuery's use.

关于javascript - 关闭特定的点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33045624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com