真的有必要自己管理事件处理程序吗



最近我读了John Resig的书《Javascript Ninja的秘密》,在关于元素事件,他写道:

出于多种原因,不绑定事件是有利的处理程序直接指向元素。

因此,在他的下一个代码中,他定义了自定义的addEventdetacheventdispatchertriggerevent方法,并将事件处理程序存储到缓存队列中,等等

尽管存在浏览器兼容性问题,但是否有其他原因不将事件处理程序直接绑定到元素?

使用此模型的一个原因是在处理动态元素时。

若您想在创建每个元素后将处理程序附加到元素本身,您需要将处理程序添加到它,但我更喜欢使用事件委派,并将处理程序注册到一个始终存在的元素,然后过滤目标元素。

原因在同一节的后面部分给出。我只是复制它以供参考:

■Event实例已修复。

■函数上下文设置为目标元素。

■Event实例作为其唯一参数传递给处理程序。

■事件处理程序将始终按照它们被绑定的顺序执行。

此外,您还可以更清洁地控制搬运器的移除。

如果您保留对每个事件侦听器及其信息的引用,那么跟踪它们会容易得多。它给你一些额外的控制;现在由您选择何时需要使用它。

相关内容

  • 没有找到相关文章

最新更新