【前端每日基础】day25——事件处理

事件处理
事件处理允许网页响应用户的交互,例如点击、键盘输入、鼠标移动等。

添加事件监听器
可以使用addEventListener来添加事件监听器:

let button = document.getElementById("myButton");// 添加点击事件监听器
button.addEventListener("click", function() {alert("Button clicked!");
});// 添加鼠标悬停事件监听器
button.addEventListener("mouseover", function() {console.log("Mouse over button!");
});

移除事件监听器
可以使用removeEventListener来移除事件监听器:

function handleClick() {alert("Button clicked!");
}button.addEventListener("click", handleClick);// 移除点击事件监听器
button.removeEventListener("click", handleClick);

事件对象
事件处理函数通常会接收一个事件对象,它包含了与事件相关的信息:

button.addEventListener("click", function(event) {// 阻止默认行为(例如,阻止链接跳转)event.preventDefault();// 阻止事件冒泡event.stopPropagation();// 获取事件目标let target = event.target;console.log("Clicked element:", target);
});

事件委托
事件委托是一种将事件监听器添加到父元素上,通过检查事件目标来处理子元素事件的方法。这样可以减少事件监听器的数量,提高性能:

let list = document.getElementById("list");list.addEventListener("click", function(event) {if (event.target && event.target.nodeName === "LI") {console.log("List item clicked:", event.target.textContent);}
});

常见事件类型
鼠标事件:click、dblclick、mouseover、mouseout、mousemove、mousedown、mouseup
键盘事件:keydown、keyup、keypress
表单事件:submit、change、input、focus、blur
窗口事件:load、resize、scroll、unload
示例:创建一个交互式网页
以下是一个示例,通过DOM操作和事件处理创建一个简单的交互式网页:

<!DOCTYPE html>
<html>
<head><title>Interactive Page</title><style>.highlight {background-color: yellow;}</style>
</head>
<body><h1 id="header">Interactive Page</h1><button id="changeColorButton">Change Color</button><button id="addParagraphButton">Add Paragraph</button><ul id="list"><li>Item 1</li><li>Item 2</li><li>Item 3</li></ul><script>let header = document.getElementById("header");let changeColorButton = document.getElementById("changeColorButton");let addParagraphButton = document.getElementById("addParagraphButton");let list = document.getElementById("list");// 改变标题颜色changeColorButton.addEventListener("click", function() {header.classList.toggle("highlight");});// 添加段落addParagraphButton.addEventListener("click", function() {let newParagraph = document.createElement("p");newParagraph.textContent = "This is a new paragraph.";document.body.appendChild(newParagraph);});// 处理列表项点击list.addEventListener("click", function(event) {if (event.target && event.target.nodeName === "LI") {alert("Clicked item: " + event.target.textContent);}});</script>
</body>
</html>

这个示例展示了如何使用DOM操作和事件处理来创建一个简单的交互式网页,用户可以点击按钮来改变标题的颜色或添加新段落,并且点击列表项时会弹出一个提示框。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/18034.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高中生是否需要上电子阅览室

高中生是否需要上电子阅览室&#xff0c;取决于学生的学习需求和个人喜好。以下是一些考虑因素&#xff1a; 1. 便利性&#xff1a;电子阅览室通常提供电脑设备和网络连接&#xff0c;方便学生在线获取学习资源。对于家中没有电脑或者网络不稳定的学生&#xff0c;上电子阅览室…

实战

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 实战一&#xff1a;模拟支付宝蚂蚁森林的能量产生过程 支付宝的蚂蚁森林通过日常的走步、生活缴费、线下支付、网络购票、共享单车等低碳、环保行为…

pyspark==windows单机搭建

下载安装JDK17,配置JAVA_HOME 下载安装hadoop-3.3.5并完整替换bin目录,配置HADOOP_HOME Index of /hadoop/common/hadoop-3.3.5 GitHub - cdarlint/winutils: winutils.exe hadoop.dll and hdfs.dll binaries for hadoop windows 下载spark配置SPARK_HOME 安装pyspark Demo …

java函数编程-黑马学习笔记

第一章 01合格的函数 函数就是一个规则 合格的函数就是只要你输入相同&#xff0c;无论多少次调用&#xff0c;不论什么时间调用&#xff0c;输出是相同的。 函数可以引用外部的数据&#xff0c;但是需要去保证外部的数据不可变 static关键字修饰的静态方法本质上和函数没…

XDebug配置几件教程,phpstorm实现http请求断点调试

写这篇的文章的初衷:网络上配置XDebug的文章有很多,XDebug也有官方的文档, PhpStorm也有官方的文档,为什么还要写那? 相信不少人,都有一种感觉,虽然教程很多,但是按教程走一遍,自己的确不能正常调试。 问题出在下面几个方面: 1. 对调试过程中,没有一定的认识,因此…

HBase分布式数据库入门到精通

文章目录 HBase分布式数据库入门到精通 一、简单介绍 二、HBase数据模型 三、HBase的架构 四、HBase写操作流程 五、HBase读操作流程 六、HBase minor小合并和major大合并 七、HBase目标表meta表 八、HBase特点 九、HBase的使用场景 HBase分布式数据库入门到精通 一、…

没开玩笑!高速信号不能参考电源网络这条规则,其实很难做到

高速先生成员--黄刚 看到这篇文章的题目&#xff0c;我相信大家心里都呈现出了这么一个场景&#xff1a;高速信号线在L20层&#xff0c;我只要把L19和L21层都铺上完整的地平面&#xff0c;这不就满足了高速信号线不能参考电源平面这条规则了吗&#xff1f;这难道很难做到吗&…

鸿蒙大厂目前政策变现沉淀思考

鸿蒙引擎定制优化 鸿蒙端hotfix&#xff1a; 技术栈太大了&#xff0c;但是鸿蒙需要学习什么呢&#xff1f; 什么最有价值&#xff1f; 这就是接下来需要表达下我的观点&#xff1a; 1、APP开发 2、应用市场技术专员 【游戏、电商重型APP性能的处理 SmartPerf、构建自己的工…

kotlin基础之扩展函数及运算符重载

Kotlin 是一种强大的静态类型编程语言&#xff0c;它特别擅长与 Java 互操作&#xff0c;并提供了许多实用的功能来简化代码和提高可读性。其中&#xff0c;扩展函数和运算符重载是 Kotlin 中的两个强大特性&#xff0c;它们允许你以更加自然和简洁的方式编写代码。 1. 扩展函…

基于SpringBoot的在线文档管理系统源码数据库

基于SpringBoot的在线文档管理系统源码数据库 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;在线文档管理当然也不能排除在外。在线文档管理系统是以实际运用为开发背景&…

JVM、JRE 和 JDK 的区别,及如何解决学习中可能会遇到的问题

在学习Java编程的过程中&#xff0c;理解JVM、JRE和JDK之间的区别是非常重要的。它们是Java开发和运行环境的核心组件&#xff0c;各自扮演不同的角色。 一、JVM&#xff08;Java Virtual Machine&#xff09; 定义 JVM&#xff08;Java虚拟机&#xff09;是一个虚拟化的计算…

EE trade:如何理解做空黄金

理解做空黄金&#xff0c;其实就是理解卖空操作在黄金市场中的应用。卖空&#xff0c;或称为做空&#xff0c;是指投资者预测某资产(在这个例子中是黄金)的价格会下跌&#xff0c;因此采取的一种投资策略。 下面简要说明做空黄金的过程和相关概念&#xff1a; 借入黄金: 首先…

【problem】解决idea提示Method breakpoints may dramatically slow down debugging

前言 在使用IntelliJ IDEA进行Java开发和调试时&#xff0c;高效和流畅的调试体验对于快速定位和解决问题至关重要。然而&#xff0c;有时我们会遇到因方法断点引起的速度减慢或程序挂起的情况。本文将指导您如何识别并解决这一问题&#xff0c;确保您的调试过程既快速又高效。…

word、excel、ppt文件office在线预览

word、excel、ppt文件在线预览 1.预览地址2.链接属性 1.预览地址 微软office提供在线加载服务&#xff1a; https://view.officeapps.live.com/op/view.aspx?srcxxx.xlsx https://view.officeapps.live.com/op/embed.aspx?srcxxx.xlsx 2.链接属性 src&#xff1a;文件链接&a…

Linux dd命令,希望不常用,但非常有用的命令~

dd 命令在 Linux 中是一个非常强大的工具&#xff0c;用于复制和转换文件。它主要用于低级复制和转换&#xff0c;特别是当涉及块设备&#xff08;如硬盘分区&#xff09;时。dd 命令的语法相当灵活&#xff0c;但也因为它的复杂性而有时让新手感到困惑。 程序员秘书 基本语法…

Android 生成正式版密钥库 KeyStore

步骤1&#xff1a;打开生成正式版密钥库设置 点击 Build 菜单&#xff0c;选择 Generate Signed App Bundle or APK&#xff1a; 这是打开后的样子&#xff1a; 步骤2&#xff1a;选择 APK Android App Bundle 是用于上架 Google Play 商店的。 正常情况下选择 APK。 选择…

【面试题】场景考核高频面试

登陆测试用例设计分析 &#xff1f; 好的&#xff0c;以下是一些常见的登录测试用例设计分析&#xff1a; 1. 输入正确的用户名和密码是否能够成功登录&#xff1f; 2. 输入错误的用户名和密码是否能够正确地验证失败&#xff1f; 3. 如果忘记了密码&#xff0c;是否有重置密…

嵌入式Linux:strerror函数和perror函数

目录 1、strerror函数 2、perror函数 strerror函数和perror函数是C标准库中的两个函数&#xff0c;用于处理和显示错误信息。它们帮助程序员在程序运行过程中了解并诊断错误原因。 strerror函数&#xff0c;返回错误消息字符串&#xff0c;需要程序员自己调用printf等函数来…

Java学习-简单的用户管理系统

用户管理系统 实现基本的用户类&#xff0c;用于抽象出用户的基本信息(编号&#xff0c;姓名&#xff0c;性别&#xff0c;电话&#xff0c;邮件)–Student实现用户工具类&#xff0c;用于实现用户的增、删、改、查–StudentUtils测试类&#xff0c;用于测试使用–StudentTest…

提升(或降低)插入的内容的位置:\raisebox

\raisebox 是 LaTeX 中的一个命令&#xff0c;用于提升&#xff08;或降低&#xff09;插入的内容&#xff08;如文本、图像等&#xff09;的位置。该命令可以用于调整垂直位置&#xff0c;使内容相对于周围内容上下移动。 语法如下&#xff1a; \raisebox{<distance>}…