你的位置:首页 > Java教程

[Java教程]前端学习——实现事件代理


事件代理

  作为新人的我以前是这样绑定多个元素的

    

<ul>	<li>1</li>	<li>2</li>	<li>3</li>	<li>4</li>	<li>5</li>	<li>6</li>	<li>7</li>	...	<li>1000</li></ul><script type="text/javascript">	var lis=document.getElementsByTagName("li");	    for(var i in lis){			lis[i].onclick=function(){				alert(this.innerHTML);			}		}</script>

  这样绑定事件不仅仅是后添加的元素无法绑定这个事件,而且性能大大的降低,同时也会照成浏览器崩溃或者内存泄漏的事情。

 

  事件代理这时候就非常有用了。它把原本需要绑定的事件委托给父元素,让父元素担当事件监听的职务。它主要利用事件冒泡来实现的,在冒泡过程通过判断元素是否是我们需要绑定的。

  

var aul=document.getElementById("cl");aul.onclick = function(event) {  e = event || window.event;  var eve = e.target || e.srcElement;  if (eve.nodeName=='LI') {	 console.log(eve);  }};

  事件代理带来了很多好处:那些需要创建的以及驻留在内存中的事件处理器少了。提高了性能,并降低了浏览器崩溃的风险。在DOM更新后无须重新绑定事件处理器了。