• 事件对象,冒泡


    1. 当触发某个事件时,会产生一个事件对象,这个对象包含着所有与事件有关的信息。事件对象,我们一般称作为event 对象,这个对象是浏览器通过函数把这个对象作为参数传递过来的。那么首先,我们就必须验证一下,在执行函数中没有传递参数,是否可以得到隐藏的参数。

    function box() { //普通空参函数
      alert(arguments.length); //0,没有得到任何传递的参数
    }
    input.onclick = function () { //事件绑定的执行函数
      alert(arguments.length); //1,得到一个隐藏参数
    };

    通过上面两组函数中,我们发现,通过事件绑定的执行函数是可以得到一个隐藏参数的。说明,浏览器会自动分配一个参数,这个参数其实就是event 对象。

    input.onclick = function () {
      alert(arguments[0]); //MouseEvent,鼠标事件对象
    };

     //上面这种做法比较累,那么比较简单的做法是,直接通过接收参数来得到即可。
     input.onclick = function (evt) {   //接受event 对象,名称不一定非要event
       alert(evt);       //MouseEvent,鼠标事件对象
     };

    
    

    //直接接收event 对象,是W3C 的做法,IE 不支持,IE 自己定义了一个event 对象,直接在window.event 获取即可。
     input.onclick = function (evt) {
       var e = evt || window.event;   //实现跨浏览器兼容获取event 对象
       alert(e);
     };

     

    2.可视区域及屏幕的坐标

    document.onclick = function (evt) {
      var e = evt || window.event;
      alert(e.clientX + ',' + e.clientY); //鼠标点击位置的坐标 ,(在视口范围内,即body)
      alert(e.screenX + ',' + e.screenY); //鼠标点击位置的坐标,(在电脑屏幕范围内,即视口+头部标题,地址栏,最下方任务栏等)
    }; 

     3.事件冒泡,是从里往外逐个触发。

    //比如div 包含 input ,div 跟 input都绑定了点击事件,那么当点击了input, div的点击事件也会触发,由里向外

    <div id="box"><input type="text" /></div>

    document.onclick = function () {   alert('我是document'); }; document.documentElement.onclick = function () {   alert('我是html'); }; document.body.onclick = function () {   alert('我是body'); }; document.getElementById('box').onclick = function () {   alert('我是div'); }; document.getElementsByTagName('input')[0].onclick = function () {   alert('我是input'); };

    阻止事件冒泡:

    //在阻止冒泡的过程中,W3C 和IE 采用的不同的方法,那么我们必须做一下兼容。
    function stopPro(evt) {
      var e = evt || window.event;
      window.event ? e.cancelBubble = true : e.stopPropagation();
    }
  • 相关阅读:
    JAVA中获取当前系统时间
    关于JAVA中URL传递中文参数,取值是乱码的解决办法
    javaweb学习总结——Filter高级开发
    java项目(java project)如何导入jar包的解决方案列表
    使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
    关于配置Tomcat的URIEncoding
    web.xml中load-on-startup的作用
    最详细的Log4j使用教程
    使用MyEclipse开发第一个Web程序
    java.net.BindException: Address already in use: JVM_Bind
  • 原文地址:https://www.cnblogs.com/luhailin/p/6611415.html
Copyright © 2020-2023  润新知