城东小巷分享 http://blog.sciencenet.cn/u/chengdong166

博文

跨浏览器的事件及事件对象类型

已有 2314 次阅读 2012-9-2 22:20 |个人分类:JS学习|系统分类:科研笔记| function, 程序, Firefox, IE浏览器

var EventUtil = {
 /**
  * <br>给元素对象注册事件处理程序<br>
  * @param ele 要绑定的元素对象
  * @param type 事件名称,例如click、load等
  * @param handler 事件处理程序函数
  */
 registerEvent : function(ele, type, handler){
  // 支持IE9、Firefox、Safari、Chrome、Opera
  if (ele.addEventListener) {
   ele.addEventListener(type, handler, false);
  }
  // 支持IE浏览器
  else if(ele.attachEvent) {
   ele.attachEvent("on" + type, handler);
  }
  // 通过属性名的方式为元素指定事件处理程序
  else {
   ele["on" + type] = handler;
  }
 },
 //删除事件处理程序
 removeEvent : function() {
  if (ele.removeEventListener) {
   ele.removeEventListener(type, handler, false);
  } else if(ele.detachEvent) {
   ele.detachEvent("on" + type, handler);
  } else {
   ele["on" + type] = null;
  }
 },
 // 获取(DOM/IE中的)事件对象
 getEvent : function(event) {
  return event ? event : window.event;
 },
 // 返回事件的目标
 getTarget : function(event) {
  return event.target || event.srcElement;
 },
 // 取消事件冒泡
 stopPropagation : function(event) {
  if (event.stopPropagation) {
   event.stopPropagation();
  } else {
   event.cancelBubble = true;
  }
 },
 // 获取当前事件发生的对象
 preventDefault : function(event) {
  if (event.preventDefault) {
   event.preventDefault();
  } else {
   event.returnValue = false;
  }
 }
 
 
}


https://blog.sciencenet.cn/blog-448935-608574.html

上一篇:跨浏览器的事件处理程序分析
下一篇:按值传递与检测类型
收藏 IP: 122.82.42.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-19 18:42

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部