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:

動態新增元素后效果:

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