冒泡捕获流
句柄形式的点击事件 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)
}