• 事件对象,冒泡


    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();
    }
  • 相关阅读:
    文档管理项目
    根据商品名称、价格区间检索商品的SQL语句
    ASP.NET MVC进阶三
    ASP.NET MVC进阶二
    vscode编写html,常用快捷方式与插件
    bpexpdate – 更改映像目录库中备份的截止日期以及介质目录库中介质的截止日期nbu
    Netbackup用于技术支持的问题报告(报障模版)
    netbackup 8.1安装注意事项
    金融的本质是什么?终于有人讲清楚了!(源于网络)
    nbu集群Alwayson相关问题
  • 原文地址:https://www.cnblogs.com/luhailin/p/6611415.html
Copyright © 2020-2023  润新知