事件(上)

事件

一、事件的介绍

  1. 事件的组成
  • 事件源:obox,绑定事件的元素。注意:事件目标,不是任何时候都等同于事件源。一般情况下是一个。
  • 绑定事件的方式:on,赋值式绑定
  • 事件类型:click,行为方式
  • 赋值:= ,赋值式绑定事件的标志之一
  • 事件处理函数:function(){console.log(“点了一下”)},触发指定行为时,要做的事情
  • 隐藏的部分:事件对象
  1. 事件对象的介绍
  • 事件发生时产生的对象,用来记录事件发生时产生的信息

  • 默认隐藏,需要主动获取

    • 事件对象的获取
    • 兼容
    obox.onclick = function(eve){
        var e = eve || window.event;
        console.log(e);
    }
    
  • 事件对象,事件的对象,没有事件,不会有对象,所以,只能在事件处理函数中才能拿到事件对象,事件结束后,事件对象被浏览器回收

  • 每次开启事件,会产生不同的事件对象

  1. 事件对象身上的信息(属性)

    1. 鼠标事件对象的坐标类
      • 相对于事件目标的坐标
        • e.offsetX/Y
      • 相对于浏览器的可视区域的坐标
        • e.clientX/Y
      • 相对于页面
        • e.pageX/Y
      • 相对于显示器的坐标
        • e.screenX/Y
    2. 键盘事件对象的keyCode
      • 获取任意按键的ASC码
        • e.keyCode
      • 获取功能按键的状态:布尔值
        • e.ctrlKey
        • e.shiftKey
        • e.altKey
  2. 事件流

    • 事件被触发的顺序

      • 从里向外:事件冒泡:一个元素的事件被触发后,会依次向上触发所有 元素的相同事件
      • 从外向内:事件捕获:一个元素的事件被触发后,会从根元素依次向内触发所有 关联子元素的相同事件,直到发生事件的元素
      • 当前真正触发事件的元素:目标元素,发生在目标元素身上的事件,叫目标事件
    • 执行顺序

      1. 捕获
      2. 目标
      3. 冒泡
    • 事件冒泡

      • 微软提出:页面上的元素关系,既然是包含关系,那么在触发某个元素的事件时,应该像:飞镖扎中靶子时,如果扎中的是十环,那么九环也相当于被扎中了,依次向上,八环,七环…整个靶子,都被扎中了

      • 事件冒泡:一个元素的事件被触发后,会依次向上触发所有 元素的相同事件

      • 不好:

        • 根据需要,阻止事件冒泡
        function stopBubble(e){
            if(e.stopPropagation){
                e.stopPropagation();
            }else{
                e.cancelBubble = true;
            }
        }
        
    • 事件捕获

      • 一般不会被主动触发,也不会被默认绑定,而且,IE浏览器没有捕获状态,IE只有冒泡
      • 所以如果想实现事件捕获,需要配合事件监听式绑定方法(addEventListener)
      • addEventListener的用法,见下一个知识点
  3. 事件的绑定方式

    • 事件绑定常见分为两种:DOM0级,DOM2级

    • DOM0级:赋值式绑定,on绑定:

      • 绑定方式:只能绑定一个事件处理函数,因为赋值会覆盖
        • 元素.onclick = function(){}
      • 删除方式:利用赋值,覆盖
        • 元素.onclick = null;
    • DOM2级:监听式绑定,长长的单词方法

      • 绑定方式:可以重复绑定

        • 元素.addEventListener(参数1, 参数2, 参数3)
          • 参数1:事件类型,注意:没有on
          • 参数2:事件处理函数
          • 参数3:布尔值:true捕获,false冒泡
      • 删除方式:

        • 元素.removeEventListener(参数1, 参数2, 参数3);
          • 参数1:要删除的事件类型,注意:没有on
          • 参数2:要删除的事件处理函数,注意:必须得和绑定时的事件处理函数是一个
            • 如果要删除,建议提前起名,不需要删除,无所谓
          • 参数3:要删除的是在哪个事件流状态的事件。布尔值:true捕获,false冒泡
      • 注意:addEventListener和removeEventListener在IE低版本浏览器下不支持

      • 兼容方法是:…

    • 如何选择,根据特点,按需选择

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值