使用Jquery off() on()或on on()

前端之家收集整理的这篇文章主要介绍了使用Jquery off() on()或on on()前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道我们可以使用jQuery on()函数附加事件,并再次使用off()删除它们。

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

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

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

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

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

例如,如果我只是打开(“点击”),它将附加我指定的功能,覆盖当前分配的功能添加到“点击”事件。

如果我打开(“click.namespace”),它将附加我指定的函数覆盖分配的当前功能添加到click.namespace。

如果on()已经替换分配给指定事件/ event.namespace的任何函数,通过链接关闭(“单击”)到on(“单击”)来删除任何事件的要点是什么?

我们的代码中有多余的语法,还是有一个我错过的原因?

编辑 – 谢谢kapa
我现在觉得有点傻,我纠正了我上面的错误知识。几次执行on(“click.namespace1”)我现在观察到数据(“事件”)对象不断添加到点击事件数组。

我认为这里回答了我自己的问题。这就是为什么会使用off(“event.namespace”)来确保没有其他附加到那个确切的事件/ event.namespace。

解决方法

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

实际上,命名空间的一个优点是您可以标记一组事件处理程序,并且稍后可以轻松地删除它们,以避免多次附加它们。这是这条线呢?

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

猜你在找的jQuery相关文章