首页 > Web开发 > 详细

js跨浏览器事件处理

时间:2015-10-28 21:13:01      阅读:262      评论:0      收藏:0      [点我收藏+]
var EventUtil = {

    addHandler: function(element,type,handler){
        if(element.addEventListener){
            element.addEventListener(type,handler,false);   //添加DOM2事件
        }else if(element.attachEvent){
            element.attachEvent("on"+type,handler);         //添加IE事件
        }else{
            element["on"+type] = handler;                    //添加DOM0事件
        }
    },
    removeHandler: 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){
        return event ? event : window.event;  //在使用DOM0级事件中中event作为window对象的一个属性存在
    },
    getTarget : function(event){
        return event.target || event.srcElement;  //IE中取得event.srcElement
    },
    preventDefault : function(event){
        if(event.preventDefault){
            event.preventDefault();
        }else{
            event.returnValue = false;  //IE中阻止默认事件
        }
    },
    stopPropagation : function(event){
        if(event.stopPropagation){
            event.stopPropagation();
        }else{
            event.cancelBubble = true;   //IE取消事件冒泡
        }
    }
}

 


addHandler()视情况分别为DOM0级方法、DOM2级方法或IE方法来添加事件。

removHandler()则是移除事件。

注:DOM0级对每个事件只支持一个事件处理程序。

 

EventUtil的使用例子,如下

window.onload = function(){
    var btn = document.getElementById("btn");
    EventUtil.addHandler(btn,"click",demo);
    //EventUtil.removeHandler(btn,"click",demo)
    function demo(){
        alert("ckicked !");
    }
}

 

js跨浏览器事件处理

原文:http://www.cnblogs.com/scnuwangjie/p/4918321.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!