1、事件触发:
● 点击子元素的时候,不管子元素有没有点击事件,只要父元素有点击事件,那么就可以触发父元素的点击事件
2、事件委托:
● 就是把我要做的事情委托给别人做
● 因为我们的冒泡机制,点击子元素的时候,也会同步触发父元素的相同事件
● 所以我们就可以把子元素的事件委托给父元素来做
target:
● target这个属性是事件对象里的属性,表示你点击的目标
● 当你触发点击事件的时候,你点击在哪个元素上,target就是那个元素
● 这个target也不兼容,在IE下要使用srcElement
<body>
<ul id="list">
<li>11111
<button>bbb</button>
</li>
</ul>
<script>
list.onclick = function(evt){
console.console.log(evt.target)
}
</script>
</body>
结果:
解释分析:
当我们点击button这个按钮,结果就是这个按钮,点击li标签结果就是li标签,也就是说这个evt.target结果是点击谁结果就是谁,
● 通过上面的代码的结果给我们提供了一个思路:如果很多子元素都要绑定同一个事件,我们可以使用事件委托把应该绑在子元素什么的事件绑在父元素身上,使用target属性,配合事件传递,可以实现当我们点击子元素时,父元素的事件就会触发,而且能通过target获取到我们点击的是哪个子元素。
target优点:
● 减少多个函数的绑定的性能损耗
● 动态添加li,也会有事件处理