• 105.事件对象及兼容处理


    var oDiv = document.getElemnetById("div1");

    // 不仅仅把绑定的方法执行了,而且浏览器还默认的给这个方法传递了一个参数值MouseEvent :鼠标事件对象

      1)它是一个对象数据类型的值,里面包含了很多的属性名和属性值,这些都是用来记录当前鼠标的相关信息的

      2)MouseEvent -->UIEvent --> Event -->Object

      3)MouseEvent 记录的是页面中唯一一个鼠标每一次触发时候的相关信息,和到底是在哪个元素上触发的没有关系

      oDiv.onclick = function () {

        console.dir(arguments) // MouseEvent 

      }

      4)关于事件对象MouseEvent的兼容问题

        a)事件对象本身的获取存在兼容问题:标准浏览器中是浏览器给方法传递的参数,我们只需要定义形参e就可以获取到;

          在ie6-8中浏览器不会给方法传递参数,我们如果需要的话需要到widow.event中获取查找;

        b)

        oDiv.onclick = function (e) {

         e = e ||  window.event;

         e.target = e.target || e.srcElement;

         e.pagex = e.pageX || (e.clientX + (document.documentElement.scrollLeft || doucument.body.scrollLeft));

         e.pageY = e.pageY || (e.clientY + (document.documentElement.scrollTop || document.body.scrollTop));

         e.preventDefault ? e.preventDefault() : e.returnValue = false;

         // e.type; 存储的是当前鼠标触发的行为类型

         // e.clientX /e.clientY; 当前鼠标触发点距离当前屏幕左上角的x/y轴的坐标值

         // e.target;  事件源,当前鼠标触发的是哪个元素,那么它存储的就是哪个元素,但是在ie6-8中不存在这个属性(e.target的值是undefined),我们使用e.srcElement来获取事件源  

         // e.pageX / e.pageY:当前鼠标触发点距离body左上角(页面第一屏幕最左上端)的x/y轴的坐标,但是在IE6-8中没有这个属性,我们通过使用clientY+滚动条卷去的高度获取也可以

         // e.stopPropagation:阻止事件的冒泡传播,在IE6-8中不兼容,使用e.cancelBubble = true来代替

         // e.preventDefault:阻止浏览器的默认行为,在IE6-8中没有这个方法我们需要使用e.returnValue = false来代替

         // 给li加:hover伪类在IE6浏览器中是不兼容的,只有a标签的这个伪类才是兼容所有浏览器的

         <li><a href="javascript:;"></a></li> //直接在html结构上阻止a标签的默认行为

            <li><a href="javascript:void (0);"></a></li>

         <li><a href="javascript:void (1);"></a></li>

        }

    //  不仅仅把绑定的方法执行了,而且浏览器还默认的给这个方法传递了一个参数值KeyboardEvent :键盘事件对象

      var input1 = document.getElementById("input1");

      input1.onkeyup = function(e) {

        e = window.event || e;

        // ->KeyboardEvent

        // e.keyCode:当前键盘按键上每一个键对应的值

      }

      

  • 相关阅读:
    List三个子类的特点
    三种迭代是否可以删除
    Vector
    LinkedList
    ArrayList
    ListIterator
    ConcurrentModificationException并发修改异常
    List
    Collection
    数组转换成集合
  • 原文地址:https://www.cnblogs.com/z-dl/p/8991017.html
Copyright © 2020-2023  润新知