事件委托
利用事件冒泡机制指定一个事件处理程序,用来管理某一类型的所有事件。在操作dom动态添加元素而该元素正好也要绑定事件,那么把该事件绑定在其父元素上通过target获取真实目标,就可以给该元素也绑定上事件,这样做的好处是只在内存中开辟了一块空间,节省资源同时减少了dom操作。例如一个场景,在ul下,不知道有多少个li,不可能给每一个li都绑定一个事件,可以在ul里先绑定一个id,然后在js里先获取到ul,通过节点里有一个target属性可以返回目标节点,就是当点击哪一个li都会返回当前被点击的那个li,这样子就可以通过target来操作啦
<body>
<ul id="a">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
</ul>
</body>
<script>
var obj=document.getElementById('a')
obj.onclick=function(e){
if(e.target.style.background=='red')
e.target.style.background='#001'
else
e.target.style.background='red'
}
</script>