论坛首页 Web前端技术论坛

JS通用事件绑定和移除程序

浏览 2270 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2014-04-30  
JS

 

首先判断是否可使用DOM2级方法,然后判断是否可使用IE方法,最后只能使用DOM0级方法

 

  <script type="text/javascript">
  var EventUtil = {
    addhandler: function(element, type, handler){
      if (element.addEventListener) {
        element.addEventListener(type, handler, false);
      } else if (element.attachEvent) {
        element.attachEvent("on" + type, handler);
      } else {
        elemnet["on" + type] = handler;
      }
    },
    removeHandler: function(){
      if (element.addEventListener) {
        element.removeEventListener(type, handler, false);
      } else if (element.attachEvent) {
        element.detachEvent("on" + type, handler);
      } else {
        elemnet["on" + type] = null;
      }
    
    }
  };
  </script>

 

   发表时间:2014-05-05  
可以改进下
addEvent : function(oTarget,sEventType,fn){
		if(oTarget.addEventListener){
			this.addEvent = function(oTarget,sEventType,fn) {
				oTarget.addEventListener(sEventType,fn,false);
			}
		}else if(oTarget.attachEvent){
			this.addEvent = function(oTarget,sEventType,fn) {
				oTarget.attachEvent("on" + sEventType,fn);
			}
		}else{
			this.addEvent = function(oTarget,sEventType,fn) {
				oTarget["on" + sEventType] = fn;
			}
		}
		// 调用新函数
		this.addEvent(oTarget,sEventType,fn);
	}

这样后面多次用到的话就免去了if else等判断,从性能上考虑这样做是值得的
remove同理
1 请登录后投票
   发表时间:2014-05-08  
thc1987 写道
可以改进下
addEvent : function(oTarget,sEventType,fn)...

这样后面多次用到的话就免去了if else等判断,从性能上考虑这样做是值得的
remove同理


学习了
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics