1. 程式人生 > >利用事件委託實現點選li列表

利用事件委託實現點選li列表

我理解的事件委託就是事件冒泡加事件源,給父類元素繫結事件,來監聽子元素的冒泡事件,並找到是哪個子元素(事件源)的事件

            點選事件繫結在ul上

var uls=document.getElementsByTagName('ul')[0];
uls.addEventListener('click',function(e){

var event=e||window.event;

                //監聽事件源

var src=event.target||event.srcElement;
console.log(src.innerText);
},false)

                //單個ul新增點選事件
var lis=document.getElementsByTagName('li');
var licount=lis.length;

for(var i=0;i<licount;i++){

                   //防閉包

(function(j){
lis[i].addEventListener('click',function(){
console.log(j+1);
},false)
}(i))

}

點選的時候,先出現li的點選事件,再實現ul的點選事件

注意事項:
    1.給元素ul繫結事件,通過addEventListener為點選事件click新增繫結

    2.因為繫結addEventListener的時候預設是冒泡,所以子元素li會向上冒泡

    3.通過匿名回撥函式的引數e用來接收事件物件,event.target||event.srcElement獲取事件源