1 回答

TA貢獻1805條經驗 獲得超9個贊
我覺得這樣可能更簡單一些,綁定事件時返回一個用來解綁的函數,需要解綁時就直接調用它,就可以了。
function addEvent(element,type,fn,data,_this){
_this = _this ? _this : element;
var bound = bindFunction(_this,fn,data);
if(element.addEventListener){
element.addEventListener(type,bound,false);
}else if(element.attachEvent){
element.attachEvent('on'+type,bound);
}else{
element['on'+type] = fn.apply(_this,[arguments,data]);
}
return function(){
if(element.removeEventListener){
element.removeEventListener(type,bound,false);
}else if(element.attachEvent){
element.detachEvent('on'+type,bound);
}else{
element['on'+type] = null;
}
};
}
//綁定
var unbinder = addEvent(/*此處省略*/);
//解除上面的綁定
unbinder();
添加回答
舉報