一分鍾教你用javascript原生代碼實現事件委托


1、什么是事件委托(代理)?

——javascript中的事件委托就是利用冒泡原理,將事件綁定到節點的父級節點上,從而觸發這些節點執行代碼中編寫的效果;

 

2、事件委托的好處:

  1)、提高js性能;

  2)、后續添加的元素同樣能觸發事件;

 

3、理解委托需要掌握的知識點:事件源(event對象中的事件源:無論在哪個事件中,當前操作的元素就是事件源)

  IE瀏覽器中的事件源:window.event.srcElement

  標准瀏覽器中的事件源:event.target

 

4、通過示例代碼理解事件委托:

HTML結構:

<body>
	<input id="input1" type="button" value="Add">
	<ul id="ul1">
		<li>1111</li>
		<li>2222</li>
		<li>3333</li>
		<li>4444</li>
	</ul>
</body>

  

Javascript代碼:

<script>
	window.onload = function(){

		var oUl = document.getElementById('ul1');
		var oInput = document.getElementById('input1');
		iNow = 4;

		oInput.onclick = function(){
			iNow ++;
			var oLi = document.createElement('li');
			oLi.innerHTML = 1111 * iNow;
			oUl.appendChild(oLi);
		};

		oUl.onmouseover = function(event){
			var event = event || window.event;
			var target = event.target || event.srcElement;
			if(target.nodeName.toLowerCase() === 'li'){
				target.style.background = 'red';
			}
		};

		oUl.onmouseout = function(event){
			var event = event || window.event;
			var target = event.target || event.srcElement;
			if(target.nodeName.toLowerCase() === 'li'){
				target.style.background = '';
			}
		};

	};
</script>

 

效果圖1:

動態新增元素后效果:

事件委托的好處自己體會,文章就寫到這里,感謝閱讀!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM