最近做项目时遇到这样一个问题,需要给若干个<A>标签添加事件,由于需要添加事件的位置比较多,为了提高js的效率,同事建议使用js事件代理来写。刚查资料写了一个demo先做个笔记,有需要的朋友可以看看。下边是事件代理的核心js代码,当然光看这一段很少有人能看懂,附件里有完整的demo,需要的话自己看看,希望对你有所帮助。
<script type="text/javascript"> cityOnClick(); function cityOnClick(){ var cityul=document.getElementsByClassName("c_com"); //根据class名选择所有ul for(var i=0;i<cityul.length;i++){ cityul[i].onclick =function(e){ var e = e || window.event; var Target = e.srcElement || e.target; // srcElement这个只是支持firefox(获取触发对象的元素) alert("点击标签名:"+Target.tagName); if( Target.tagName.toUpperCase() == "A" ){ alert( Target.innerHTML ); alert(Target.name); }; } } } </script>