通常情况下,当我想将某个事件绑定到一个元素上时,我会直接将该事件绑定到该元素上。例如,我想将点击事件绑定到“li”元素上:
<ul id="ul_list">
<li class="t">xxxx</li>
<li class="t">xxxx</li>
.....
</ul>
var lis=document.getElementById("ul_list").children();
for(var i=0;i<lis.length;i++){
lis[i].onclick=function(){
console.info(this.innerHTML);
}
}
它有效。
但在一些开源代码中,我发现人们更喜欢将事件绑定到父元素上:
document.onclick=function(e){
e=e==null?:window.event:e;
var target=e.target; //the browser is not considered here
if(target.className=='t' && target.localName='LI'){
console.info(target.innerHTML);
}
}
我想知道哪一个更好?
此外,在处理拖动事件时,人们将 mousemove
事件绑定到整个文档上。为什么?