JS事件冒泡和事件捕捉

子标签和父标签都绑定事件,点击子标签,先触发子的绑定事件,再触发父的绑定事件,叫做事件冒泡

反之,先触发父,后触发子,叫做事件捕捉

事件捕捉通过以下的第三个参数来设置,true为事件捕捉,false为事件冒泡,默认是false。

document.getElementById("parent").addEventListener("click",function(e){ alert("parent事件被触发,"+e.target.id); },true)

W3C使用event.stopPropagation()起到阻止捕获和冒泡阶段中当前事件的进一步传播。IE则是使用e.cancelBubble = true。

W3C使用event.preventDefault()可以取消默认事件。IE则是使用e.returnValue = false。

事件委托利用事件的冒泡原理来实现的,事件从最深的节点开始,然后逐步向上传播事件。

1、提高JavaScript性能。事件委托可以显著的提高事件的处理速度,减少内存的占用。

2、动态的添加DOM元素,不需要因为元素的改动而修改事件绑定。

事件委托把事件绑定到父组件上,然后用浏览器的事件ev获取他的属性target,这个target是事件目标节点,它有个属性叫nodeName,以此来获取子标签名,从而处理操作。

讲的非常好的事件冒泡事件捕捉事件委托

你可能感兴趣的:(JS事件冒泡和事件捕捉)