jquery中动态事件添加就是用的事件委托,在处理事件中,事件委托是非常高效的事件监听方法
receiver:监听者
typeEvent:监听事件
sender:被监听者
func:事件处理函数
//事件委托
function delegate(receiver,typeEvent,sender,func){
EventUtil.addHandler(receiver,typeEvent,function(event){
event=EventUtil.getEvent(event);
var target=EventUtil.getTarget(event);
if(target==receiver){
return null;
}
var current=target;
var yes=false;
do{
if(judge(target)){
yes=true;
var sendElem=target;
break;
}{
var parent=target.parentNode;
target=parent;
}
}while(parent!=receiver);
if(yes){
func(receiver,sendElem,current);
}
});
function judge(elem){
var yes=true;
for(var i in sender){
if(elem[i]!=sender[i]){
yes=false;
}
}
return yes;
}
}
事件委托是非常高效的事件监听方法