zoukankan      html  css  js  c++  java
  • 事件对象的兼容写法

    跨浏览器的事件对象
    我们依旧可以通过往EventUtil对象中写一些函数来实现跨浏览器的事件处理。
    var EventUtil = {    ①getEvent:function (event){
                             return event ? event :window.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;
                             }
                         },
                     };
    其中定义了4个函数。
    第一个getEvent,它返回对event对象的引用。由于在IE中事件对象的位置不同,可以使用这个方法取得event对象,而不必担心指定事件处理程序的方式。它的使用方法是:

    btn.onclick =function(event){
        event = EventUtil.getEvent(event);
    };

    在兼容DOM的浏览器中,event变量只是简单地传入和返回。而在IE中,event参数是未定义的(undefined),因此就会返回window.event。将这一行代码添加到事件处理程序的开头,就可以确保随时都能使用event对象,而不必担心用户使用的是什么浏览器。

    第二个getTarget,它返回事件的目标。
    用法:

    btn.onclick = function(event0{
       event = EventUtil.getEvent(event);
       var target =  EventUtil.getTarget(event);
    };


    第三个preventDefault,用于取消事件的默认行为。
    用法:

    var link =document.getElementByIdx_x("myLink");
    link.onclick = function(event){
        event = EventUtil.getEvent(event);
        EventUtil.preventDefault(event);
    };


    第四个stopPropagation,只能用来阻止事件冒泡,因为在IE中不支持事件捕获。
    用法:

    var btn =document.getElementByIdx_x("myBtn");
    btn.onclick =function(event){
        alert("Clicked");
        event = EventUtil.getEvent(event);
        EventUtil.stopPropagation(event);
    }
    document.body.onclick = function(event){
        alert("Body clicked");
    };
  • 相关阅读:
    索引
    convert 时间转换
    SQL中的case when then else end用法
    SVN安装图解
    dos 命令
    阿里云服务器相关知识
    mvc知识应用
    MVC分页
    mvc系统过滤器
    .net 接口
  • 原文地址:https://www.cnblogs.com/daiwenru/p/6268430.html
Copyright © 2011-2022 走看看