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

yizhihongxing

下面我将详细讲解 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日

相关文章

  • 最新版JavaScript中的箭头函数

    当我们使用JavaScript编写代码时,函数是一种非常重要的语言特性。在最新版本的JavaScript中,引入了箭头函数,这是一种更加简洁和优雅的函数声明方式。在本文中,我们将详细讲解什么是箭头函数以及如何使用箭头函数。 什么是箭头函数? 箭头函数是一种新的函数语法,它可以用更短的代码书写函数。它使用箭头语法 (=>) 声明函数。箭头函数可以用来声明…

    JavaScript 2023年5月27日
    00
  • Android 实现WebView点击图片查看大图列表及图片保存功能

    Android 实现WebView点击图片查看大图列表及图片保存功能 简介 在WebView中点击图片可以实现图片查看、图片保存等功能是非常常见且实用的功能,本文将详细介绍如何在Android中实现WebView点击图片查看大图列表及图片保存功能。 WebView中显示图片 在Android中使用WebView加载网页时,如果网页中有图片,则图片默认是不会展…

    JavaScript 2023年6月11日
    00
  • 关于异步请求ajax原理以及原生Ajax、$.ajax的基本使用详解

    一、异步请求Ajax原理 异步请求Ajax原理是指利用JavaScript和XMLHttpRequest对象实现浏览器与服务器之间的异步通讯。使用Ajax技术不需要刷新整个页面,只需要更新部分页面内容,加快了网页响应速度,提高了用户体验。 实现Ajax的原理是通过XMLHttpRequest对象向服务器发送请求,接收到服务器反馈的数据后更新页面。需要注意的是…

    JavaScript 2023年6月11日
    00
  • javascript实现考勤日历功能

    实现考勤日历功能的前置要求: 掌握HTML,CSS和JavaScript基础 了解Date对象及其相关方法 了解事件处理机制 下面开始我们的实现攻略: 步骤1:HTML骨架 我们需要先设计一个HTML骨架,用于放置后续动态生成的日历元素。 <div id="calendar"> <div class="head…

    JavaScript 2023年5月27日
    00
  • javascript ajax获取信息功能代码

    接下来我将详细讲解“JavaScript AJAX获取信息功能代码”的完整攻略。在学习 AJAX 前,需要先理解一下 AJAX 的概念:AJAX 即 Asynchronous JavaScript and XML,使用 AJAX 技术可以在不重新加载整个网页的情况下,实现与服务器端的异步数据交互和局部刷新。 在下面的攻略中,我们将使用纯 JavaScript…

    JavaScript 2023年6月11日
    00
  • JavaScript深拷贝的几种实现方法实例

    为什么需要深拷贝? 在 JavaScript 中,对象和数组是通过引用赋值的方式传递的。如果直接将一个对象或数组赋值给另一个变量,那么这两个变量其实指向的是同一个对象或数组。因此,如果修改其中一个变量所指向的对象或数组的值,那么另一个变量也会受到影响。这就是浅拷贝的特点。为了避免这种情况的发生,我们需要进行深拷贝,即创建一个新的对象或数组,其中所有的值都是原…

    JavaScript 2023年5月27日
    00
  • nodejs中实现阻塞实例

    实现阻塞实例需要用到Node.js中的核心模块fs和util。其中,fs模块用于读取文件内容,util模块中的promisify方法用于将回调函数转化为返回Promise对象的函数。 下面是一个完整的实现阻塞实例的攻略,包含两条示例说明: 1. 读取文件并输出内容 1.1 创建文件 首先,需要创建一个文件example.txt,并向其中写入一些内容。 ech…

    JavaScript 2023年5月28日
    00
  • js计算字符串长度包含的中文是utf8格式

    计算字符串长度是 JavaScript 中常见的需求,但要注意的是在字符串中如果包含了中文字符,这时候需要使用 UTF-8 编码计算字符串的长度。下面是实现步骤: 1. 获取 UTF-8 编码的长度 对于 UTF-8 编码来说,一个中文字符占用 3 个字节。可以使用 JavaScript 的 encodeURIComponent 函数对中文字符编码,然后使用…

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