web前端:JavaScript-跨浏览器事件处理程序(EventUtil)
敲键小勇士
2024-04-23 23:02
事件对象属于内核对象,它包含一个使用计数,一个用于标识该事件是一个自动重置还是一个人工重置的布尔值,和另一个用于指定该事件处于已通知状态还是未通知状态的布尔值。
由上面所述,可见事件对象可分为两种,一种是人工重置的,另一种是自动重置的。当人工重置的事件得到通知时,等待该事件的所有线程均变为可调度线程。而当一个自动事件得到通知时,等待该事件的所有线程中只有一个线程变为可调度线程。
Javascript-跨浏览器事件处理程序(EventUtil)
事件操作对象:
varEventUtil={
//添加事件
addHandler:function(element,type,handler){
if(element.addEventListener){
element.addEventListener(type,handler,false);
}elseif(element.attachEvent){//IE
element.attachEvent("on"+type,handler,false);
}else{
element["on"+type]=handler;
}
},
//移除对象
removeHandler:function(element,type,handler){
if(element.removeEventListener){
element.removeEventListener(type,handler,false);
}elseif(element.detachEvent){//IE
element.detachEvent("on"+type,handler,false);
}else{
element["on"+type]=null;
}
},
//获取事件对象
getEvent:function(event){
returnevent?event:window.event;
},
//获取目标对象
getTarget:function(event){
returnevent.target||event.class="lazy" data-srcElement;
},
//取消默认事件
preventDefault:function(event){
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue;
}
},
//停止冒泡
stopPropagation:function(event){
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancelBubble=true;
}
}
};
创建事件对象,可以调用WindowsAPI中的CreateEvent。它可以创建一个有名的或匿名的事件对象。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341