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日

相关文章

  • Bootstrap Multiselect 常用组件实现代码

    Bootstrap Multiselect 是基于 Bootstrap 样式的多选下拉列表组件,并提供了丰富的 API 以支持开发者进行定制化的配置。下面我将向你介绍如何使用 Bootstrap Multiselect,以及常用组件实现代码的完整攻略。 一、安装 Bootstrap Multiselect Bootstrap Multiselect 的最新版…

    JavaScript 2023年6月11日
    00
  • 5种JavaScript脚本加载的方式

    当我们在网站中使用JavaScript时,JavaScript文件的加载方式对性能以及用户体验有很大的影响。下面,我们来详细讲解5种JavaScript脚本加载的方式,以及他们各自的优缺点。 1. 内联脚本 内联脚本通过在HTML文件中直接嵌入JavaScript代码来加载JavaScript文件。这种方式虽然简单,但只适用于较小的脚本文件,而对于大型脚本文…

    JavaScript 2023年5月27日
    00
  • 详解javascript函数的参数

    下面就详细讲解“详解JavaScript函数的参数”的完整攻略。 1. 简介 在 JavaScript 函数定义中,可以传递任意数量的参数,包括数字、字符串、对象等,这些参数可以在函数体中使用。函数的参数可以被看做是可以传递给函数的变量,它们是函数体内部的局部变量。 2. 基本用法 JavaScript 函数定义中可以传递任意数量的参数,这些参数通过逗号隔开…

    JavaScript 2023年5月27日
    00
  • JSONP解决JS跨域问题的实现

    让我们来详细讲解一下如何使用JSONP来解决JS跨域问题。 什么是JSONP JSONP是一种跨域方式,全称为JSON with Padding。它通过动态创建script标签的方式,将请求的数据包装在函数中返回,并执行这个函数,从而实现跨域请求数据的目的。 JSONP的原理很简单,就是利用script标签的src属性可以跨域请求资源,而服务端返回的是一个具…

    JavaScript 2023年5月27日
    00
  • 关于vue.js中this.$emit的理解使用

    关于vue.js中this.$emit的理解与使用攻略 什么是this.$emit? 在Vue.js中,this.$emit()是一个特殊的方法,用于定制组件的自定义事件。 在子组件中使用this.$emit(eventName, data)可以触发父组件的自定义事件,这样父组件就能够在监听到该事件后进行相应的处理。 this.$emit使用方法 在Vue.…

    JavaScript 2023年6月10日
    00
  • JavaScript Date对象 日期获取函数

    JavaScript Date对象是处理日期和时间的首选方式之一。Date对象的实例从内部保存为UTC格式的整数,它代表1970年1月1日UTC(协调世界时)午夜至当前日期时间间的毫秒数。Date对象提供了许多方法来获取日期,包括年、月、日、小时、分钟和秒等。下面是Date对象日期获取函数的完整攻略: 1. 获取完整日期时间 使用Date对象的toStrin…

    JavaScript 2023年5月27日
    00
  • javascript中floor使用方法总结

    下面来详细讲解一下“javascript中floor使用方法总结”。 什么是floor函数? floor是Javascript内置的一个Math对象里的函数,可以得到一个小数的整数部分。 floor怎么使用? floor函数的使用很简单,可以直接用Math对象调用: Math.floor(3.14); // 3 上面的代码,调用了Math对象的floor方法…

    JavaScript 2023年5月28日
    00
  • JavaScript实现自动生成网页元素功能(按钮、文本等)

    让我们来详细讲解一下“JavaScript实现自动生成网页元素功能(按钮、文本等)”的完整攻略。 1. 需求分析 要实现自动生成网页元素功能,首先需要明确我们的需求和目标。我们的目标是在用户输入指定的元素类型和数量后,自动生成对应的HTML元素,比如按钮、文本输入框等。可以参考以下的需求分析: 需要一个表单,供用户填写元素类型和数量。表单设计可以参考以下样式…

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