jQuery 相当于 JavaScript 的 addEventListener 方法

我试图找到这个JavaScript方法调用的jQuery等效物:

document.addEventListener('click', select_element, true);

我已经做到了:

$(document).click(select_element);

但这并没有达到相同的结果,因为JavaScript方法的最后一个参数 - 一个布尔值,指示事件处理程序是否应该在捕获或冒泡阶段执行(根据我对 http://www.quirksmode.org/js/events_advanced.html 的理解) - 被省略了。

如何使用jQuery指定该参数或以其他方式实现相同的功能?


答案 1

并非所有浏览器都支持事件捕获(例如,小于9的Internet Explorer版本不支持),但所有浏览器都支持事件冒泡,这就是为什么它是用于将处理程序绑定到所有跨浏览器抽象中的事件的阶段,包括jQuery。

最接近您在jQuery中查找的内容是使用bind()(在jQuery 1.7 +中被on()取代)或特定于事件的jQuery方法(在本例中为click(),无论如何都会在内部调用)。所有这些都使用引发事件的冒泡阶段。bind()


答案 2

从 jQuery 1.7 开始,现在是绑定事件的首选方法,而不是:.on().bind()

http://api.jquery.com/bind/

从 jQuery 1.7 开始,.on() 方法是将事件处理程序附加到文档的首选方法。对于早期版本,.bind() 方法用于将事件处理程序直接附加到元素。处理程序附加到 jQuery 对象中当前选定的元素,因此这些元素必须存在于调用 .bind() 的点上。有关更灵活的事件绑定,请参阅 .on() 或 .delegate() 中有关事件委派的讨论。

文档页面位于 http://api.jquery.com/on/