Javascript 为页面中任何元素生成的自定义事件提供单个事件侦听器

Javascript 为页面中任何元素生成的自定义事件提供单个事件侦听器,javascript,jquery,Javascript,Jquery,我正在创建一个巨大的web应用程序,它有一个基于JavaScript的UI,并且不断生成许多事件 为了避免由于需要大量事件监听器而导致性能下降,我当然选择使用单个事件监听器,它将捕获从子元素生成的所有事件(事件冒泡) 问题是,该应用程序的设计方式是,可以将一个或多个模块加载到我正在编写的主JavaScript库中(该库负责控制UI和程序的所有其他方面)。当然,每个模块都应该彼此完全独立,因此您可以选择加载哪些方法,而不影响库的一般功能,只添加或删除功能 由于每个模块都可以在不同的DOM元素中运行

我正在创建一个巨大的web应用程序,它有一个基于JavaScript的UI,并且不断生成许多事件

为了避免由于需要大量事件监听器而导致性能下降,我当然选择使用单个事件监听器,它将捕获从子元素生成的所有事件(事件冒泡)

问题是,该应用程序的设计方式是,可以将一个或多个模块加载到我正在编写的主JavaScript库中(该库负责控制UI和程序的所有其他方面)。当然,每个模块都应该彼此完全独立,因此您可以选择加载哪些方法,而不影响库的一般功能,只添加或删除功能

由于每个模块都可以在不同的DOM元素中运行,因此我需要为每个模块至少提供一个事件侦听器,因为两个模块可以侦听由放置在不同DOM分支中的html元素生成的事件

例如,在这个提琴中,第一个按钮将让第一段触发一个事件,它的父级将捕获它。第二个按钮将允许第二段触发事件,但是监听同一事件的div不会捕获它,因为它不是从它的子事件中触发的

所以我的问题是:是否有可能有一个单一的事件监听器,能够同时监听由非其子元素触发的事件(页面上所有位置的元素)

我在考虑使用一个js对象或dom节点,存储触发事件的元素的数据和事件本身,然后在全局事件侦听器上触发一个常规事件(无论它位于dom中的何处),然后它将读取数据以发现哪个元素生成了哪个事件,并据此采取行动


关于实现这一点的更好方法的任何帮助或建议?

jQuery为此类情况提供了一个特殊的活页夹:。它让所有事件冒泡到文档中,然后相应地处理它们。但是,如果您为不同的面板等使用div或其他容器,则使用可能更有意义。不要太担心绑定元素的数量。相信我,它将运行以及50绑定或10个代表,因为它将与1活

即使对于在iframe内部生成并被主页文档或主体捕获的事件,这是否可行?我遇到了一些问题。@Jose我认为您无法从父文档内的iframe捕获事件,因为它们不能在iframe外冒泡。live方法冒泡到文档(如果是iframe,则为iframe的文档),委托冒泡到指定的父级(最后一个是iframe中的文档)。