通用的事件侦听函数

javascript写一个通用的事件侦听函数(即跨浏览器也支持)

<script>
        var EventUnit = {
            addHandler:function (element,type,handler) {
               if(element.addEventListener){
                   element.addEventListener(type,handler,false);
               }
                else if(element.attachEvent){
                   element.attachEvent("on"+type,handler);
               }
                else{
                   element["on"+type] = handler;
               }
            },//添加事件
            getEvent:function (event) {
                return event?event:window.event;
            },//得到event
            getTarget:function (event) {
                return event.target||event.srcElement;//得到目标元素
            },
            preventDefault:function (event) {
                if(event.preventDefault)
                {
                    event.preventDefault();
                }
                else{
                    event.returnValue = false;
                }
            },//取消事件的默认行为
            stopPropagation:function (event) {
                if(event.stopPropagation){
                    event.stopPropagation();
                }
                else
                {
                    event.cancelBubble = true;
                }
            },
            removehandler:function (element,type,handler) {
                if(element.removeEventListener){
                    element.removeEventListener(type,handler,false);
                }
                else if(element.detachEvent){
                    element.detach("on"+type,handler);
                }
                else{
                    element["on"+type] = "";
                }
            }//移除事件
        };
    </script>

如何使用:

  btn.onclick = function (event) {
            event = EventUnit.getEvent(event);//保证随时都能用event,而不必担心用户时什么浏览器
            var target = EventUnit.getTarget(event);//返回事件的目标
            EventUnit.addHandler(button,"click",handler);//添加事件处理程序
            EventUnit.preventDefault(event);//取消事件的默认行为
            EventUnit.stopPropagation(event);//阻止事件在DOM层的传播
            EventUnit.removehandler(button,"click",handler);//移除事件处理程序
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值