最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js实现一些跨浏览器的事件方法详解及实例

来源:动视网 责编:小采 时间:2020-11-27 20:28:39
文档

js实现一些跨浏览器的事件方法详解及实例

js实现一些跨浏览器的事件方法详解及实例:js实现一些跨浏览器的事件方法 用JavaScript实现事件的绑定,移除,以及一些常用的事件属性的获取,时常要考虑到在不同浏览器下的兼容性,下面给出了一个跨浏览器的事件对象: var EventUtil = { on: function(element, type, handler
推荐度:
导读js实现一些跨浏览器的事件方法详解及实例:js实现一些跨浏览器的事件方法 用JavaScript实现事件的绑定,移除,以及一些常用的事件属性的获取,时常要考虑到在不同浏览器下的兼容性,下面给出了一个跨浏览器的事件对象: var EventUtil = { on: function(element, type, handler


js实现一些跨浏览器的事件方法

  用JavaScript实现事件的绑定,移除,以及一些常用的事件属性的获取,时常要考虑到在不同浏览器下的兼容性,下面给出了一个跨浏览器的事件对象:

 var EventUtil = { 
 on: function(element, type, handler) {/* 添加事件 */
 if (element.addEventListener) {
 element.addEventListener(type, handler, false);
 } else if (element.attachEvent) {//IE 注意:此时事件处理程序会在全局作用域中运行,因此用attachEvent绑定的事件,此时在事件处理函数里的this 等于window,使用时要注意
 element.attachEvent("on" + type, handler);
 } else {
 element["on" + type] = handler;
 }
 },
 
 off: function(element, type, handler) {/* 移除事件 */
 if (element.removeEventListener) {
 element.removeEventListener(type, handler, false);
 } else if (element.detachEvent) {
 element.detachEvent("on" + type, handler);
 } else {
 element["on" + type] = null;
 }
 },
 
 getEvent: function(event) {/* 返回对event对象的引用 */
 return event ? event : window.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;
 }
 },
 
 /* mouseover 和mouserout 这两个事件都会涉及把鼠标指针从一个元素的边界之内移动到另一个元素的边界之内。*/
 getRelatedTarget: function(event) {
 if (event.relatedTarget) {
 return event.relatedTarget;
 } else if (event.toElement) {//IE8 mouserout事件
 return event.toElement;
 } else if (event.fromElement) {//IE8 mouseover事件
 return event.fromElement;
 } else {
 return null;//其他事件
 }
 }
};

调用如下:

EventUtil.on(document, "click", function(event){//为document元素绑定click事件
 event = EventUtil.getEvent(event);//获取event事件对象
 alert("Screen coordinates: " + event.screenX + "," + event.screenY);
});

文档

js实现一些跨浏览器的事件方法详解及实例

js实现一些跨浏览器的事件方法详解及实例:js实现一些跨浏览器的事件方法 用JavaScript实现事件的绑定,移除,以及一些常用的事件属性的获取,时常要考虑到在不同浏览器下的兼容性,下面给出了一个跨浏览器的事件对象: var EventUtil = { on: function(element, type, handler
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top