JS事件冒泡和时间捕获

2016-09-26  本文已影响0人  树袋熊熊

最近一直在找工作,相信事件冒泡、事件捕获对于web前端来说,是个很重要的点,现在在学习过程中做个总结。

什么是js事件冒泡?

官方:事件开始时由具体的元素接收,然后逐级向上传播到较为不具体的节点。(IE5.5及更早版本会跳过<html>,从body直接跳到document),IE9、firefox、chrome等事件会一直冒泡到window对象

自己的理解:当设定了多个div的嵌套时,即建立了父子关系,当父div与子div共同加入了onclick事件时,当触发子div的onclick事件后,子div进行相应的JS操作,但是父div的onclick事件同样会被触发,这就造成了事件的并发,导致页面混乱。

怎样阻止事件冒泡:在w3c标准里调用event.stopPropagation()

                                    在IE下通过设置window.event.cancelBubble=true来实现。

什么是事件捕获?

官方:(事件捕获的思想)不太具体的节点应该更早接收到事件,而更具体的节点应该最后接收到事件。

注意:IE的内核是没有捕获事件的过程。

举例说明:

<!DOCTYPE html>

<html>

<head>

<title>event bubble</title>

</head>

<body>

<div id='div'>click me</div>

</body>

</html>

事件冒泡:div->body->html->document

事件捕捉:document->html->body->div

上一篇下一篇

猜你喜欢

热点阅读