事件侦听器函数

maryun.Event = {
    //页面加载完成后
    readyEvent:function (fn) {
        if(fn==null){
            fn = document;
        }
        var oldonload = window.onload;
        if(typeof window.onload != 'function'){
            window.onload = fn;
        }else{
            window.onload = function () {
                oldonload();
                fn();
            }
        }
    },
    //参数:操作的元素,事件名称,事件处理程序
    addEvent:function (element,type,handler) {
        if (element.addEventListener){
            //事件类型、需要执行的函数、是否捕获
            element.addEventListener(type,handler,false);
        } else if(element.attachEvent){
            element.attachEvent('on'+type,function () {
                handler.call(element);
            });
        }else{
            element['on' + type] = handler;
        }
    },
    //移除事件
    removeEvent: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;
        }
    },
    //阻止事件(主要是事件冒泡,因为IE不支持事件捕获)
    stopPropagation:function (ev) {
        if(ev.stopPropagation){
            ev.stopPropagation();
        }else{
            ev.cancelBubble = true;
        }
    },
    //取消事件的默认行为
    preventDefault:function (event) {
        if(event.preventDefault){
            event.preventDefault();
        }else{
            event.returnValue = false;
        }
    },
    //获取事件目标
    getTarget:function (event) {
        return event.target || event.srcElement;
    },
    //获取event对象的引用,取到事件的所有信息,确保随时能使用event
    getEvent:function (e) {
        var ev = e || window.event;
        if (!ev){
            var c =this.getEvent.caller;
            while (c){
                ev = c.arguments[0];
                if (ev && Event == ev.constructor){
                    break;
                }
                c = c.caller;
            }
        }
        return ev;
    }
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值