打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
js 真的addeventHandler
歪SIR
>《Javascript》
2011.08.17
关注
<PRE
class
=jscript name=
"code"
>
//定义 EventUtil 对象
var
EventUtil =
new
Object;
//添加事件处理
EventUtil.addEventHandler =
function
(oTarget, sEventType, fnHandler){
if
(oTarget.addEventListener) {
//firefox
oTarget.addEventListener(sEventType, fnHandler,
false
);
}
else
if
(oTarget.attachEvent) {
//IE
oTarget.attachEvent(
"on"
+sEventType, fnHandler);
}
else
{
//others
oTarget[
"on"
+ sEventType] = fnHandler;
}
};
//删除事件处理
EventUtil.removeEventHandler =
function
(oTarget, sEventType, fnHandler){
if
(oTarget.removeEventListener) {
//firefox
oTarget.removeEventListener(sEventType, fnHandler,
false
);
}
else
if
(oTarget.detachEvent) {
//IE
oTarget.detachEvent(
"on"
+sEventType, fnHandler);
}
else
{
//others
oTarget[
"on"
+ sEventType] =
null
;
}
};
//事件格式化,将IE下的对象尽可能的调整为DOM的事件模型
EventUtil.formatEvent =
function
(oEvent){
var
isIE = Validate_Browser(
"ie"
);
var
isWin= Validate_System(
"win"
);
if
(isIE && isWin){
oEvent.charCode = (oEvent.type ==
"keypress"
) ? oEvent.keycode : 0;
oEvent.eventPhase = 2;
oEvent.isChar = (oEvent.charCode > 0);
oEvent.pageX = oEvent.clientX + document.body.scrollLeft;
oEvent.pageY = oEvent.clientY + document.body.scrollTop;
oEvent.preventDefault =
function
(){
this
.returnValue =
false
;
};
if
(oEvent.type ==
"mouseout"
){
oEvent.relatedTarget = oEvent.toElement;
}
else
if
(oEvent.Type ==
"mouseover"
) {
oEvent.relatedTarget = oEvent.fromElement;
}
oEvent.stopPropagation =
function
(){
this
.cancelBubble =
true
;
};
oEvent.target = oEvent.srcElement;
oEvent.time = (
new
Date()).getTime();
}
return
oEvent;
};
//获得事件对象
EventUtil.getEvent =
function
(){
if
(window.event){
return
this
.formatEvent(window.event);
}
else
{
return
EventUtil.getEvent.caller.arguments[0];
}
};
//加载窗体的同时,给对象附加事件处理函数
EventUtil.addEventHandler(window,
"load"
,
function
(){
var
oDiv = document.getElementById(
"divObj"
);
var
oDivDel = document.getElementById(
"divDel"
);
EventUtil.addEventHandler(oDiv,
"mouseover"
, handleEvent);
EventUtil.addEventHandler(oDiv,
"mouseout"
, handleEvent);
EventUtil.addEventHandler(oDiv,
"mousedown"
, handleEvent);
EventUtil.addEventHandler(oDiv,
"mouseup"
, handleEvent);
EventUtil.addEventHandler(oDiv,
"click"
, handleEvent);
EventUtil.addEventHandler(oDiv,
"dblclick"
, handleEvent);
EventUtil.addEventHandler(oDivDel,
"click"
, RemoveEvent);
});
function
RemoveEvent (){
var
oDiv = document.getElementById(
"divObj"
);
var
oDivDel = document.getElementById(
"divDel"
);
EventUtil.removeEventHandler(oDiv,
"mouseover"
, handleEvent);
EventUtil.removeEventHandler(oDiv,
"mouseout"
, handleEvent);
EventUtil.removeEventHandler(oDiv,
"mousedown"
, handleEvent);
EventUtil.removeEventHandler(oDiv,
"mouseup"
, handleEvent);
EventUtil.removeEventHandler(oDiv,
"click"
, handleEvent);
EventUtil.removeEventHandler(oDiv,
"dblclick"
, handleEvent);
EventUtil.removeEventHandler(oDivDel,
"click"
, RemoveEvent);
var
oTextMsg = document.getElementById(
"oTextMsg"
); </PRE>
<PRE
class
=jscript name=
"code"
> oTextMsg.value =
"附加事件已经清除"
;</PRE>
<PRE
class
=jscript name=
"code"
>}
function
handleEvent(){
try
{
var
oEvent = EventUtil.getEvent();
var
oTextMsg = document.getElementById(
"oTextMsg"
);
oTextMsg.value =
""
;
oTextMsg.value +=
"/n>"
+ oEvent.type;
oTextMsg.value +=
"/n target is "
+ oEvent.target.tagName;
if
(oEvent.relatedTarget) {
oTextMsg.value +=
"/n relatedTarget is "
+ oEvent.relatedTarget.tagName;
}
}
catch
(e) {
alert(e.toString());
//这个异常,等待解决
}
}</PRE>
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报
。
打开APP,阅读全文并永久保存
查看更多类似文章
猜你喜欢
类似文章
【热】
打开小程序,算一算2024你的财运
JavaScript学习笔记——事件
javascript事件模型框架
JavaScript 自定义多级联动浮动菜单
从零开始学习jQuery (五) 事件与事件对象
可拖动模块,文字伸缩、框架伸缩例子
dwr实现GoogleSuggest 修改bug版
更多类似文章 >>
生活服务
热点新闻
留言交流
回顶部
联系我们
分享
收藏
点击这里,查看已保存的文章
导长图
关注
一键复制
下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×