问题解决

文章介绍了DOM作为HTML和XML文档的编程接口,用于操作网页内容,而BOM描述了与浏览器行为相关的接口。事件监听是DOM中处理事件的关键,包括onxxx和addEventListener()方法,事件流分为捕获和冒泡两个阶段。事件委托是一种优化策略,通过父元素监听子元素的事件来减少内存消耗。

1、了解BOM&DOM模型
2、了解JS 事件监听
3、了解DOM 事件流

---------------------------------------------------------------------------------------------------------------------------------

1.DOM又称文档对象模型,它是HTML和XML文档的编程接口,它主要描述了一些我们使用JS处理网页内容的方法和接口,它的目标是网页内容。比如说我们使用JS修改页面内容,其实就是操作的DOM文档。

BOM又称浏览器对象模型,它主要用来描述一些与浏览器行为相关的接口和方法,比如我们利用JS调整浏览器窗口大小、标签页跳转等等,这些都是BOM对象。

2.事件监听就是DOM对事件进行监听,知道什么时候发生了这个事件,从而执行一些写好的程序。

设置事件监听的方法主要有onxxx和addEventListener()两种;

事件的传播

先从外到内(捕获阶段),然后再从内到外(冒泡阶段)

而,onxxx这样的写法(DOM0级),只能监听冒泡阶段;所以需要用到addEventListener()方法(DOM2级);

注意事项

  • 最内部的元素不再区分捕获和冒泡阶段,会先执行写在前面的监听,然后执行后写的监听;
  • 如果给元素设置相同的两个或多个同名事件,则DOM0级写法后面写的会覆盖先写的;而DOM2级会按顺序执行;

3.事件流简单来说就是事件执行的顺序流。DOM树中有大量的元素,元素之间出现嵌套时,给父子元素同时设置了事件,父子元素的事件执行会按照某种顺序执行,这就是事件流。当然,嵌套层级不限,最终事件流会贯穿当前元素和根元素()之间整个嵌套过程。

冒泡型事件流:事件的传播是从最特定的事件目标到最不特定的事件目标。即从DOM树的叶子到根。
顺序: 从下向上 即: 某个具体的元素 -> … -> body -> html -> document -> window

注:默认addEventListener()使用冒泡型事件流。

捕获型事件流(俗称挖洞):事件的传播是从最不特定的事件目标到最特定的事件目标。即从DOM树的根到叶子。

顺序: 从上向下 即: window -> document -> html -> body -> … -> 某个具体的元素

capture捕获, bubble冒泡。

事件委托: 也可以成为事件代理,也就是将原本绑定在子元素身上的事件 委托 给父元素。让父元素去监听事件。其原理是利用事件冒泡。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值