JS事件添加和迁移的兼容性示例
无功eventutil = { {
AddHandler:功能(元素、类型、处理{)
如果(元。addEventListener){
element.addeventlistener(类型、处理程序、错误);
} else if(元。attachevent){
element.attachevent(+型,处理程序);
{ }人
元素+类型=处理程序;
}
},
匀:功能(事件){
返回事件:window.event;
},
PreventDefault:功能(事件){
如果(事件。preventDefault){
Event.preventDefault();
其他{ }
event.returnvalue = false;
}
},
RemoveHandsler:功能(元素、类型、处理){
如果(元。removeEventListener){
element.removeeventlistener(类型、处理程序、错误);
} else if(元。detachevent){
element.detachevent(+型,处理程序);
其他{ }
元素+类型=处理程序;
}
}
里面的功能(事件){
如果(事件。里面){
event.stoppropagation();
{ }人
event.cancelbubble =真;
}
},
取得相关的目标:功能(事件){
如果(事件。relatedtarget){
返回event.relatedtarget;
} else if(事件。toelement){
返回event.toelement;
} else if(事件。fromelement){
返回event.fromelement;
{ }说
返回null;
}
},
GetButton:功能(事件){
如果(document.implementation.hasfeature(鼠标事件来
返回event.button;
其他{ }
开关(事件按钮){
案例0:
案例1:
案例3:
案例5:
案例7:
返回0;
案例2:
案例6:
返回2;
案例4:
返回1;
}
}
}
};
其中,AddHandler和removehandsler会对DOM2方法存在的第一种方法。输入元素检测如果有DOM2方法,使用方法:输入事件类型、事件处理函数第三参数假(表示冒泡阶段如果有IE)。该方法在当时采用了第二种方案。事件类型必须添加到前缀上。最后一种可能是用做的方法(不应执行这里的代码在现代浏览器)。此时,我们正在使用为事件处理程序指定的方括号语法属性名称,或者将属性设置为null。
eventutil对象可以用如下:
VaR建立document.getelementbyid(mybtn );
var处理器=函数(){()
警报(单击);
};
EventUtil.addHandler(按钮,点击
省略其他代码
EventUtil.removeHandler(按钮,点击
更多有关Javascript相关内容的读者可以看到特别站:Javascript切换效果和技巧摘要
希望本文能对javascript程序设计有所帮助。