Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)

下面我将详细讲解 Javascript DOM 事件操作的小结,主要包括监听鼠标点击、释放,悬停、离开等事件的监听方式和应用场景。

什么是DOM事件

DOM事件是用户与网页交互的过程中所产生的一些行为,包括鼠标点击、释放,鼠标悬停、离开,键盘按键等,通过监听这些事件可以实现很多网页的交互效果。

DOM事件的三个阶段

在浏览器页面中,DOM事件的整个过程可以被分为三个阶段:

  1. 捕获阶段:事件从DOM树的根节点向下传导,直到在目标元素上捕获到了事件。
  2. 目标阶段:事件在目标元素上触发。
  3. 冒泡阶段:事件从目标元素向上冒泡,直到传递到DOM树的根节点。

DOM事件的默认行为是在目标阶段触发,这就意味着在监听事件时需要通过第三个参数来控制事件是否在捕获阶段或冒泡阶段进行监听。

监听 DOM 事件

可以使用 addEventListener 方法来监听 DOM 事件,该方法接收两个参数:

  1. 事件类型,如 "click"、"mouseover" 等。
  2. 事件触发时所执行的回调函数。

下面是一个监听鼠标悬停、离开事件的示例:

const targetElem = document.getElementById("target");
targetElem.addEventListener("mouseover", () => {
  console.log("鼠标移入目标元素");
});
targetElem.addEventListener("mouseout", () => {
  console.log("鼠标移出目标元素");
});

在该示例中,使用 getElementById 方法获取 id 为 "target" 的元素,然后分别监听该元素的 "mouseover" 和 "mouseout" 事件,通过回调函数打印相关信息。

阻止默认行为和事件传播

在监听 DOM 事件过程中,有时候需要阻止事件的默认行为或阻止事件的传播。可以在回调函数中使用 event.preventDefault() 方法来阻止事件的默认行为,如下所示:

const linkElem = document.getElementById("link");
linkElem.addEventListener("click", (event) => {
  event.preventDefault(); // 阻止默认行为
  console.log("链接被点击");
});

在该示例中,使用 getElementById 方法获取 id 为 "link" 的元素,然后监听该元素的 "click" 事件,在回调函数中使用 preventDefault() 方法来阻止链接的跳转。

同样地,可以使用 event.stopPropagation() 方法来阻止事件的传播,即使事件在目标元素处被阻止,也不会继续向上传播。如:

const parentElem = document.getElementById("parent");
const childElem = document.getElementById("child");
parentElem.addEventListener("click", () => {
  console.log("父元素被点击");
});
childElem.addEventListener("click", (event) => {
  event.stopPropagation(); // 阻止事件冒泡
  console.log("子元素被点击");
});

在该示例中,使用 getElementById 方法获取 id 为 "parent" 和 "child" 的两个元素,然后分别在父元素和子元素上监听 "click" 事件,在子元素的回调函数中使用 stopPropagation() 方法来阻止事件的冒泡,只执行子元素的回调函数。

以上就是 Javascript DOM 事件操作的小结,可以通过监听 DOM 事件实现网页交互效果,同时可以对事件的默认行为和传播进行控制。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等) - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JS创建自定义对象的六种方法总结

    当我们使用JavaScript编程时,有时需要自定义对象来存储和操作一组相关的数据和方法。下面详细讲解JS创建自定义对象的六种方法: 方法一:使用对象字面量来定义对象 let person = { name: ‘Tom’, age: 18, sayHello: function() { console.log(‘Hello, ‘ + this.name + …

    JavaScript 2023年5月27日
    00
  • 关于TypeScript开发的6六个实用小技巧分享

    下面我将为您详细讲解“关于TypeScript开发的6六个实用小技巧分享”的完整攻略。 1. 引入类型声明文件 在使用第三方库时,通常需要使用类型声明文件(.d.ts)来规范代码。在 TypeScript 中,我们通过 /// <reference types=”…” /> 指令来引入类型声明文件。 例如,引入 jQuery 的类型声明文件:…

    JavaScript 2023年5月19日
    00
  • JavaScript数据类型转换实例(其他类型转字符串、数值型、布尔类型)

    当我们在开发 JavaScript 时经常会遇到需要将一个数据类型转换为另外一种类型的情况,比如数字转字符串、布尔型转数字等等,本文将为大家介绍 JavaScript 数据类型转换实例,内容包括其他类型转字符串、数值型、布尔类型的转换。 其他类型转字符串 在 JavaScript 中,我们可以使用 toString() 方法将其他类型转换为字符串类型,例如:…

    JavaScript 2023年5月28日
    00
  • js判断两个数组相等的5种方法实例

    下面是讲解“js判断两个数组相等的5种方法实例”的完整攻略: 前言 在开发中,我们经常需要比较两个数组是否完全相等。JS提供了多种方法来判断两个数组是否相等。但需要注意的是,这些方法中有一些是不可靠的,比如”===”运算符。本文将介绍五种可靠的判断数组是否相等的方法。 方法一:JSON.stringify() JSON.stringify() 方法将一个Ja…

    JavaScript 2023年5月27日
    00
  • JavaScript 时分秒时间代码(自动补零)

    关于JavaScript时分秒时间代码的自动补零,我们可以采用以下两种方式实现: 1. 使用自带方法 padStart() 该方法可以在字符串前添加指定数量的字符,从而实现自动补零。具体参考以下示例代码: // 获取当前时间 const now = new Date(); // 获取时分秒 const hour = now.getHours(); const…

    JavaScript 2023年5月27日
    00
  • JavaScript使用Math.random()生成简单的验证码

    生成验证码是网站开发中常见的需求之一,通过JavaScript的Math.random()方法可以生成随机数,进而生成简单的验证码。下面是一个完整的攻略,会详细讲解生成验证码的步骤以及两条示例说明。 生成验证码的步骤 1. 定义生成验证码的函数 在JavaScript中,可以通过函数来生成验证码。我们可以定义一个名为generateCode的函数,该函数可返…

    JavaScript 2023年5月28日
    00
  • 基于AGS JS开发自定义贴图图层

    以下是关于基于AGS JS开发自定义贴图图层的完整攻略: 1. 什么是AGS JS? AGS(ArcGIS Server) JS(Javascript)是ArcGIS平台的JavaScript API,它提供了一种简单而强大的方式来创建Web地图和Web应用程序。AGS JS通过使用JavaScript语言和预定义的类库,可以轻松地构建具有各种GIS功能的W…

    JavaScript 2023年6月11日
    00
  • 编写高性能JavaScript(译)

    下面就为您详细讲解“编写高性能JavaScript(译)”的完整攻略。 一、前言 JavaScript 是当前最流行的编程语言之一,但它的性能往往会成为我们的瓶颈。而编写高性能的 JavaScript 可以节省服务器资源、提高用户体验。本攻略将为大家介绍如何编写高性能 JavaScript 的方法和技巧。 二、准备工作 编写高性能 JavaScript 的前…

    JavaScript 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部