0

jquery 事件对象在 jquery 库中编写了一些属性和方法,我想知道浏览器如何知道我们使用的是 jquery 事件对象而不是普通事件,因为我注意到我们没有做任何额外的工作来表明这一点!

4

2 回答 2

2

您的事件处理程序永远不会绑定到元素。相反,它位于window.jQuery.cache与元素关联的条目中。

绑定的是通用事件处理程序。当事件发生时,该处理程序会抓取浏览器的事件对象,查看它是什么类型的事件,在 中查找您的处理程序jQuery.cache并调用它。

但是在调用它之前,它会创建一个新的事件对象来传递给您的处理程序而不是原始的(尽管它包括原始的)

于 2013-03-03T16:38:42.617 回答
1

浏览器不知道... jQuery 捕获事件,获取正常的事件对象并对其进行规范化。

jQuery 的事件系统根据 W3C 标准规范化事件对象。事件对象保证被传递给事件处理程序。原始事件的大多数属性都被复制并规范化到新的事件对象。

文档

于 2013-03-03T16:30:59.990 回答