事件委托,主要参照的原理是事件冒泡。原因是刚生成的元素无法获取到它。例如下边的例子,要取到新生成的元素,在点击新生的元素时,弹出对应的文本。
应采取事件监听,兼容IE做法如下
function addEvent(obj,fn,even,boolean){
if(obj.addEventListener){
obj.addEventListener(even,fn,boolean);
}
else{
ev='on'+even;
obj.attachEvent(ev,fn);
}
}
先给父级元素添加事件,然后在父级元素中取到点击的新建子元素即可。
addEvent(oDiv,function (ev) {
var e=window.event||ev;
if( e.srcElement.nodeName.toLowerCase()=="h1"){
var e=window.event||ev;
if( e.srcElement.nodeName.toLowerCase()=="h1"){
alert(ev.srcElement.innerHTML)
}// IE支持e.srcElement
}// IE支持e.srcElement
// if(ev.target.nodeName.toLowerCase()=="h1") 火狐支持ev.target
},"click")
},"click")