• 深度解析JavaScript事件对象属性


    深度解析JavaScript事件对象属性

    引言

    JavaScript的事件处理机制是其交互能力的基础。但要充分利用这一机制,了解事件对象及其属性是关键。本文旨在深度解析这些属性,以供初学者和进阶开发者参考。

    核心属性

    type

    • 描述:表示触发的事件类型。

    • 示例用法

      button.addEventListener('click', function(event) {
        alert(event.type); // 弹出 "click"
      });
      
      • 1
      • 2
      • 3

    target

    • 描述:返回触发事件的DOM元素。

    • 示例用法

      button.addEventListener('click', function(event) {
        alert(event.target.tagName); // 弹出 "BUTTON",假设button是触发事件的元素
      });
      
      • 1
      • 2
      • 3

    currentTarget

    • 描述:返回附加了事件监听器的DOM元素,与target不同,特别是在事件冒泡期间。

    • 示例用法

      div.addEventListener('click', function(event) {
        alert(event.currentTarget.id); // 弹出 "myDiv",假设div的id是"myDiv"
      });
      
      • 1
      • 2
      • 3

    bubbles

    • 描述:布尔值,表示事件是否冒泡。

    • 示例用法

      button.addEventListener('click', function(event) {
        alert(event.bubbles); // 弹出 "true",因为click事件默认会冒泡
      });
      
      • 1
      • 2
      • 3

    cancelable

    • 描述:布尔值,表示是否可以取消事件的默认行为。

    • 示例用法

      button.addEventListener('click', function(event) {
        alert(event.cancelable); // 弹出 "true",因为click事件的默认行为通常可以取消
      });
      
      • 1
      • 2
      • 3

    timestamp

    • 描述:返回事件对象创建的时间戳。

    • 示例用法

      button.addEventListener('click', function(event) {
        alert(event.timeStamp); // 弹出一个时间戳
      });
      
      • 1
      • 2
      • 3

    clientXclientY

    • 描述:在鼠标事件中,返回鼠标指针相对于视口的X和Y坐标。

    • 示例用法

      button.addEventListener('click', function(event) {
        alert(`X: ${event.clientX}, Y: ${event.clientY}`); // 弹出鼠标点击位置的坐标
      });
      
      • 1
      • 2
      • 3

    其他有用的属性

    keyCode

    • 描述:在键盘事件中,返回被按下键的键码。

    • 示例用法

      document.addEventListener('keydown', function(event) {
        alert(event.keyCode); // 弹出被按下键的键码
      });
      
      • 1
      • 2
      • 3

    altKey, ctrlKey, shiftKey, metaKey

    • 描述:布尔值,表示当事件发生时是否按下了Alt、Ctrl、Shift或Meta键。

    • 示例用法

      document.addEventListener('keydown', function(event) {
        if(event.altKey) {
          alert('Alt key is pressed');
        }
      });
      
      • 1
      • 2
      • 3
      • 4
      • 5

    relatedTarget

    • 描述:在某些事件中(如鼠标进入、离开元素),表示与事件主目标相关的次要目标。

    • 示例用法

      div.addEventListener('mouseover', function(event) {
        alert(event.relatedTarget.tagName); // 假设鼠标从一个p标签移到div,这将弹出 "P"
      });
      
      • 1
      • 2
      • 3

    结论

    希望这篇文章能帮你更全面地理解JavaScript事件对象的各个属性。这些属性在编写交互逻辑时非常有用,熟悉它们有助于你写出更高效、更可控的代码。

  • 相关阅读:
    [附源码]计算机毕业设计基于springboot的云网盘设计
    【AIGC调研系列】Claude 3调研分析
    【FAQ】DevEco Studio如何添加多module
    《程序员面试金典(第6版)》面试题 02.08. 环路检测(哈希法,双指针,检测链表是否有环)
    【TensorFlow深度学习】使用TensorBoard可视化模型训练过程与性能指标
    单元测试覆盖率
    英语六级-day7
    【图灵诸葛】jvm笔记
    Selenium基础 — 多窗口操作
    C++ 模板集 - 不定期更新
  • 原文地址:https://blog.csdn.net/weixin_44369049/article/details/133698046