首页 > 其他 > 详细

兼容各个浏览器的事件监听代码

时间:2017-04-09 21:03:52      阅读:222      评论:0      收藏:0      [点我收藏+]
EventUtil = {
    /*事件添加*/
    addListener: function(target,type,handler){
        if(target.addEventListener){
            target.addEventListener(type,handler);
        }else if(target.attachEvent){
            target.attachEvent(‘on‘+type,function(){
                handler.call(target)  /*让handler中的this指向目标元素*/
            });
        }else{
            target[‘on‘+type] = handler;
        }
    },
    /*事件移除*/
    removeListener: function(target,type,handler){
        if(target.removeEventListener){
            target.removeEventListener(type,handler);
        }else if(target.detachEvent){
            target.detachEvent(‘on‘+type,handler);
        }else{
            target[‘on‘+type] = null;
        }
    },
    /*事件对象获取*/
    getEvent: function(e){
        var evt = window.event || e;
        return evt;
    }
    /*获取目标对象*/
    getTarget: function(e){
        var evt = EventUtil.getEvent(e);
        var target;
        if(evt.target){
            target = evt.target;
        }else{
            target = evt.srcElement;
        }
        return target;
    }
    /*停止冒泡*/
    stopPropagation: function(e){
        var evt = EventUtil.getEvent(e);
        if(evt.stopPropagation){
            evt.stopPropagation();
        }else{
            e.cancelBuble = true;
        }
    },
    /*阻止默认行为*/
    preventDefault: function(e){
        var evt = EventUtil.getEvent(e);
        if(evt.preventDefault){
            evt.preventDefault();
        }else{
            evt.returnValue = false;
        }
    }
}

 

兼容各个浏览器的事件监听代码

原文:http://www.cnblogs.com/white0710/p/6686290.html

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