js事件流(事件捕获——目标阶段——事件冒泡)

1. 事件捕获,事件冒泡

事件:事件是指文档和浏览器窗口发生特定交互的瞬间。

事件流: 事件流指页面中接受事件的顺序,微软为事件冒泡,网景为事件捕获。

事件捕获:由上而下,根元素最早接受事件,目标元素最后接受事件。

事件冒泡:由下而上,目标元素最早接受事件,逐级向上,最后根元素接受事件。

2. DOM事件流

DOM事件流规定,事件流由三个部分构成 事件捕获——目标阶段——事件冒泡,首先事件捕获为截获事件提供机会,然后实际目标接受事件,事件冒泡阶段对事件做出响应。事件在目标阶段是无法获取事件的。

3. 事件处理程序

DOM事件定义了两种方法,addEventListener和removeEventListener他们都包含三个参数(1.处理事件的的方式click…2.事件处理函数(如果是删除函数必须是命名函数3.bool值为true为事件捕获阶段调用,默认为false事件冒泡阶段调用)

4. 事件委托

利用事件冒泡原理,将子级触发的事件绑定在父级身上。

事件委托优点:

1. 减少多次绑定,提高程序性能

2. 动态添加的子元素也能自动获取事件

5. js阻止事件冒泡和默认事件

w3c:e.stopPropagation

ie:window.event.cancelBubble = true

默认事件:是指目标元素的默认行为比如a标签会跳转链接 form会提交表单

w3c:e.preventDefault()

ie:window.event.returnValue = false

另外js中的return false也可以阻止默认行为jq中的return false既可以阻止默认行为也可以阻止冒泡

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容