冒泡捕获流
句柄形式的点击事件 oBtn.onclick=function(){//只有事件冒泡,没有时间捕获}IE提出的事件冒泡流(Event Buttling)Netscape提出的事件捕获流
事件流
事件源的兼容性
box.onclick=function(e){var e=e||window.event;var tar=e.target||e.srcElement;}
事件委托/事件代理
基本概念
事件代理(Event Delegation),又称为事件委托。是javaScript中常用绑定事件的常用技巧,‘事件代理’既是把原本需要绑定在子元素的响应事件委托给父元素,让父元素担当事件监听的职务。事件代理的原理是DOM元素的事件冒泡。
<ul><li></li><li></li><ul>var oList=docuemnt.getElementsByTagName('ul')[0];oLi=docuemnt.getElementsByTagName('li')[0];//事件代理oList.onClick=function(e){var e=e||window.event,tar=e.target||e.srcElement;//此时的tar就是点击的那个<li></li>//获取目标对象的下标 这种方法不推荐//for(var i=0;i<len;i++){//item=oLi[i];//if(tar===item){// console.log(i)//}//}var index=Array.prototype.indexOf.call(oLi,tar);console.log(index)}
