我知道我们可以使用 jQueryon()
函数附加事件并使用off()
.
在现有项目中,我有时会遇到类似于以下的代码:
$("#SomeId").off("click").on("click");
或者有时在使用类似于此的命名空间时:
$("#SomeId").off("click.namespace").on("click.namespace");
据我所知,您只能将单个事件附加到事件的特定命名空间。
例如,如果我只是这样做on("click")
,它将附加我指定的功能,覆盖当前分配的功能,添加到“点击”事件。
如果我这样做on("click.namespace")
,它将附加我指定的函数,覆盖当前分配的函数,添加到click.namespace
.
off("click")
通过将 an 链接到on("click)
ifon()
已经替换分配给指定 event/event.namespace 的任何函数来删除任何事件有什么意义?
它是我们代码中的冗余语法还是我错过了它的原因?
编辑 - 谢谢kapa
我现在感觉有点傻,我纠正了我上面的错误知识。执行on("click.namespace1")
了几次,我现在观察到该data("events")
对象不断添加到单击事件数组中。
我认为这回答了我自己的问题。这就是为什么人们会使用off("event.namespace")
来确保没有其他任何东西附加到那个确切的 event/event.namespace。