gpt4 book ai didi

jquery - 使用 Jquery off().on() 或仅使用 on()

转载 作者:行者123 更新时间:2023-12-03 21:31:21 25 4
gpt4 key购买 nike

我知道我们可以使用 jQuery on() 函数附加事件,并使用 off() 再次删除它们。

在现有项目中,我有时会遇到类似这样的代码:

$("#SomeId").off("click").on("click");

或者有时使用类似于这样的命名空间时:

$("#SomeId").off("click.namespace").on("click.namespace"); 

据我所知,您只能将单个事件附加到事件的特定命名空间。

例如,如果我简单地执行 on("click") ,它将附加我指定的函数, 覆盖当前分配的函数 ,添加到“click”事件。

如果我执行on("click.namespace"),它将附加我指定的函数 覆盖当前分配的函数 ,添加到click.namespace.

通过将 off("click") 链接到 on("click) if on() 来删除任何事件有什么意义> 已经替换了分配给指定 event/event.namespace 的任何函数?

我们的代码中是否有多余的语法,或者是否有我错过的原因?

编辑 - 谢谢kapa
现在感觉自己有点傻了,纠正一下上面错误的知识。执行 on("click.namespace1") 多次后,我发现 data("events") 对象不断添加到点击事件数组中。

我认为这回答了我自己的问题。这就是为什么人们会使用 off("event.namespace") 来确保没有任何其他内容附加到该确切的 event/event.namespace。

最佳答案

实际上,您可以将多个事件处理程序附加到同一事件,而不仅仅是一个。即使使用命名空间。查看this quick demo .

实际上,命名空间的一个优点是您可以标记一组事件处理程序,并在以后轻松删除它们以避免多次附加它们。这就是这一行的作用:

$("#SomeId").off("click.namespace").on("click.namespace"); 

关于jquery - 使用 Jquery off().on() 或仅使用 on(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10979865/

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