你了解事件对象吗

201 阅读2分钟

「这是我参与11月更文挑战的第19天,活动详情查看:2021最后一次更文挑战

之间介绍过很多JS的知识了,今天我们来聊聊事件对象

  • 你了解事件对象吗?
  • 你知道事件对象的写法吗?
  • 以及事件捕获和事件冒泡的起源你了解吗? 今天就来看看事件对象相关的知识点,包括事件冒泡和事件委托的起源!

事件对象

事件对象就是处理函数里面的一个参数,说白了就是浏览器打包好的一个对象自动传入到处理函数的第一个参数中。

事件对象的写法

为了兼容IE一般这么写:e = e || window.event 事件对象会有个属性target,这个target叫事件源对象,记录可事件具体在谁身上触发的那个源头 同样IE上事件源对象是e.srcElement,谷歌两个都有 所以为了兼容IE一般获取事件源对象是这么来写:

e = e||window.event;
var target = e.target || e.srcElement;

事件捕获和事件冒泡的起源

当浏览器发展到第四代时(IE4及Netscape4),浏览器开发团队遇到了一个很有意思的问题:页面的哪一部分会拥有某个特定的事件?想象画在一张纸上的一组同心圆。如果把手指放在圆心上,那么手指指向的不是一个圆,而是纸上的所有圆

两家公司的浏览器开发团队在看待浏览器事件方面还是一致的。如果单击了某个按钮,他们都认为单击事件不仅仅发生在按钮上,甚至也单击了整个页面

但有意思的是,IE和Netscape开发团队居然提出了差不多是完全相反的事件流的概念。IE的事件流是事件冒泡流,而Netscape的事件流是事件捕获流。事件冒泡和事件捕获称为两种事件处理模型

以上就是关于事件对象的知识,欢迎点赞、关注~