比如说大量的循环
要求为1000个li标签添加事件,如果利用循环给li绑定事件可想而知。遍历的基数越大,性能开销也越大。
这是就要应该用事件委托来解决此事。
<span style="font-size:18px;">var oUl=document.getElementById('oUl');
oUl.onclick=function(ev){
var oEv=ev||event;
var oSrc=oEv.target||oEv.srcElement;
<span style="white-space: pre;"> </span>if(oSrc..tagName=='li'){</span>
<span style="font-size:18px;"><span style="white-space:pre"> </span> fn();<span style="white-space:pre"> </span> </span>
<span style="font-size:18px;"><span style="white-space:pre"> </span>}
}</span>
tagName nodeName
tagName 只能在标签上使用
nodeName 可以在所有节点上使用
event.srcElemen 意思就是当前事件源
firefox 下的event.target等于IE下的event.srcElement
解决方法如下:
obj(obj=event.srcElement?event.srcElement:event.target)