有人告诉我有时事件委托更有效率。
<ul id="test">
<li>aaaaa<li>
<li>bbbbb <p>xxxxx<p> </li>
<li>ccccc<li>
</ul>
//script
var li = document.getElementByTagName('li');
for(var i=0,len=li.length;i<len;i++){
li[i].addEventListener('click',function(){ alert(this.innerHTML); },false);
}
//event delegate
var ul = document.getElementById('test');
ul.addEventListener('click',function(e){
if(e.target == 'li'){
alert(e.target.innerHTML);
}
},false);
在“li”中单击“p”时效果不佳。我知道 jquery 有方法'on',它很有用。我尝试阅读 jquery 源代码,但无法理解如何在复杂的 DOM 下实现委托函数工作。