gpt4 book ai didi

javascript - JQuery 别名为每个元素 + 处理程序注册一次事件?

转载 作者:行者123 更新时间:2023-11-29 15:23:56 25 4
gpt4 key购买 nike

使用 element.off('event', handler).on('event', handler) 确保每个 element + 处理程序组合。

JQuery 中是否有通过 1 个函数提供相同功能的别名?

-不要与 .one 混淆,后者调用,而不是只注册一次!-

编辑:现在我必须先通过引用声明处理程序,然后才能使用它,这会产生很多额外的代码。

结论:我通过自己实现一个once函数解决了这个问题:

$.fn.once = function() { return this.off.apply(this, arguments).on.apply(this, arguments); };

最佳答案

不,jQuery 没有内置机制来防止您多次向元素添加相同的处理程序。您的解决方法是一种方法(前提是 handler 确实是之前注册的same 函数),另一种方法是标记类(如果类存在则不要添加处理程序,然后同时添加类和处理程序),或标记 data 属性(相同)等。

(这有点有趣,因为 DOM 确实自动过滤掉为同一元素上的同一事件添加完全相同的函数。但是由于 jQuery 管理它自己的处理程序列表,因此它可以确保跨浏览器 vendor 的激活顺序、事件命名空间等,DOM 的机制不会启动。)

关于javascript - JQuery 别名为每个元素 + 处理程序注册一次事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41225778/

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