javascript事件模型框架-eventutil.js
来源:互联网 发布:海尔智能家居网络设置 编辑:程序博客网 时间:2024/04/27 16:57
var EventUtil = new Object;
/**//*
此方法用来给特定对象添加事件,oTarget是指定对象,sEventType是事件类型,如click、keydown等, fnHandler是事件回调函数
/*
EventUtil.addEventHandler = function (oTarget, sEventType, fnHandler) {
//firefox情况下
if (oTarget.addEventListener) {
oTarget.addEventListener(sEventType, fnHandler, false);
}
//IE下
else if (oTarget.attachEvent) {
oTarget.attachEvent("on" + sEventType, fnHandler);
}
else {
oTarget["on" + sEventType] = fnHandler;
}
};
/*
此方法用来移除特定对象的特定事件,oTarget是指定对象,sEventType是事件类型,如click、keydown等,fnHandler是事件回调函数
/*
EventUtil.removeEventHandler = function (oTarget, sEventType, fnHandler) {
if (oTarget.removeEventListener) {
oTarget.removeEventListener(sEventType, fnHandler, false);
} else if (oTarget.detachEvent) {
oTarget.detachEvent("on" + sEventType, fnHandler);
} else {
oTarget["on" + sEventType] = null;
}
};
/*
格式化事件,因为IE和其他浏览器下获取事件的方式不同并且事件的属性也不尽相同,通过此方法提供一个一致的事件
*/
EventUtil.formatEvent = function (oEvent) {
//isIE和isWin引用到一个js文件,判断浏览器和操作系统类型
if (isIE && isWin) {
oEvent.charCode = (oEvent.type == "keypress") ? oEvent.keyCode : 0;
//IE只支持冒泡,不支持捕获
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;
};
//将toElement,fromElement转化为标准的relatedTarget
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;
//添加事件发生时间属性,IE没有
oEvent.time = (new Date).getTime();
}
return oEvent;
};
EventUtil.getEvent = function() {
if (window.event) {
//格式化IE的事件
return this.formatEvent(window.event);
} else {
return EventUtil.getEvent.caller.arguments[0];
}
};
- javascript事件模型框架-eventutil.js
- javascript事件模型框架-eventutil.js
- javascript基础—事件兼容EventUtil.js
- JavaScript:EventUtil.js
- javascript使用eventutil绑定事件
- javascript事件模型框架
- EventUtil.js
- JS跨浏览器事件工具之:EventUtil完整源码
- EventUtil原生事件工具
- js Eventutil内容
- js EventUtil addhandler removehandler
- DOM事件模型是如何的,编写一个EventUtil工具类实现事件管理兼容
- 跨浏览器事件处理 EventUtil
- eventutil 跨浏览器事件对象
- EventUtil.js 开发常用工具类
- EventUtil.js 开发常用工具类
- EventUtil
- JavaScript 事件模型
- JavaMail(JAVA邮件服务) API详解
- MyISAM几个容易忽视的配置选项
- 最常见的20种VC++编译错误信息集合
- 如何成功的在MSVC6下编译PWLIB1_12_0 /OPENH323 2_4_0
- createthread和beginthread句柄数只增不降
- javascript事件模型框架-eventutil.js
- C++中实现通用数据结构
- 华为往事(十一)---华为的“中南海”
- 整站如何防止SQL注入攻击
- sql通过一个节点ID得到所有子节点
- 华为往事(十二)---C&C08鉴定会
- eclipse 编译器的一个bug
- 华为往事(十三)--“丧权辱国”的协议
- 一位程序员的忠告