javascript写一个通用的事件侦听函数(即跨浏览器也支持)
<script>
var EventUnit = {
addHandler:function (element,type,handler) {
if(element.addEventListener){
element.addEventListener(type,handler,false);
}
else if(element.attachEvent){
element.attachEvent("on"+type,handler);
}
else{
element["on"+type] = handler;
}
},//添加事件
getEvent:function (event) {
return event?event:window.event;
},//得到event
getTarget:function (event) {
return event.target||event.srcElement;//得到目标元素
},
preventDefault:function (event) {
if(event.preventDefault)
{
event.preventDefault();
}
else{
event.returnValue = false;
}
},//取消事件的默认行为
stopPropagation:function (event) {
if(event.stopPropagation){
event.stopPropagation();
}
else
{
event.cancelBubble = true;
}
},
removehandler:function (element,type,handler) {
if(element.removeEventListener){
element.removeEventListener(type,handler,false);
}
else if(element.detachEvent){
element.detach("on"+type,handler);
}
else{
element["on"+type] = "";
}
}//移除事件
};
</script>
如何使用:
btn.onclick = function (event) {
event = EventUnit.getEvent(event);//保证随时都能用event,而不必担心用户时什么浏览器
var target = EventUnit.getTarget(event);//返回事件的目标
EventUnit.addHandler(button,"click",handler);//添加事件处理程序
EventUnit.preventDefault(event);//取消事件的默认行为
EventUnit.stopPropagation(event);//阻止事件在DOM层的传播
EventUnit.removehandler(button,"click",handler);//移除事件处理程序
}