javascript 添加和移除函數的通用方法
2019-11-21 01:03:59
供稿:網友
//添加函數的方法
function addEvent( node, type, listener) {
if( node.addEventListener ){
// W3C方法(DOM方法)
//下面語句中的false意思是用于冒泡階段,若是true則是用于捕獲階段(IE不支持捕獲),所以這里用false是一方面的原因是為了統一
node.addEventListener( type, listener, false );
return true;
} else if( node.attachEvent ){
// MSIE方法(IE方法)
node['e' + type + listener] = listener;
node[type + listener] = function (){
node['e' + type + listener](window.event);
};
node.attachEvent('on' + type, node[type + listener]);
return true;
}
//如兩種方法都不具備則返回false
return false;
}
//移除函數的方法
function removeEvent( node, type, listener) {
if( node.addEventListener ){
node.removeEventListener( type, listener, false );
return true;
} else if( node.detachEvent) {
node.detachEvent('on' + type, listener);
return true;
}
//如兩種方法都不具備則返回false
return false;
}
//添加載入事件的方法如下所示
1.function addLoadEvent(func){
var oldonload=window.onload;
if(typeof window.onload!="function"){
window.onload=func;
}else{
window.onload=function(){
oldonload();
func();
}
}
}
2.//用上面的addEvent方法
addEvent(window, 'load', fn);