【基于HTML5的网页设计及应用】——事件代理.

🎃个人专栏:

🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客

🐳Java基础:Java基础_IT闫的博客-CSDN博客

🐋c语言:c语言_IT闫的博客-CSDN博客

🐟MySQL:数据结构_IT闫的博客-CSDN博客

🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客

💎C++:C++_IT闫的博客-CSDN博客

🥽C51单片机:C51单片机(STC89C516)_IT闫的博客-CSDN博客

💻基于HTML5的网页设计及应用:基于HTML5的网页设计及应用_IT闫的博客-CSDN博客​​​​​​

🥏python:python_IT闫的博客-CSDN博客

🐠离散数学:离散数学_IT闫的博客-CSDN博客

​​​​​​🥽Linux:​​​​Linux_Y小夜的博客-CSDN博客

🚝Rust:Rust_Y小夜的博客-CSDN博客

欢迎收看,希望对大家有用!

目录

🎯功能简介

🎯代码解析

🎯核心代码

🎯效果展示


🎯功能简介

这段代码实现了一个简单的列表项添加和点击变色的功能。具体功能包括:

1. 页面中有一个按钮,点击按钮可以添加一个新的列表项到`ul`元素中。
2. 初始时,页面已经包含了一个带有四个固定内容的列表项。
3. 点击任意一个列表项,该列表项的背景颜色会变成红色。
4. 使用了事件委托的方式,在`ul`元素上添加了一个点击事件监听器,当点击`ul`下的`li`元素时,会检查点击的元素是否为`li`,如果是,则将其背景改为红色。

总体来说,这段代码实现了动态添加列表项和点击列表项改变样式的基本功能,同时利用事件委托的方式提高了性能,确保新添加的列表项也具有相同的交互效果。

🎯代码解析

当添加列表项按钮被点击时,调用addLi函数,在该函数内动态创建一个li元素,并将其插入到class为menuul元素中。

<input type="button" value="添加列表项" onclick="addLi()">
function addLi() {var ll = document.createElement("li");ll.innerHTML = "新增的列表项";document.querySelector(".menu").appendChild(ll);
}

在这里,事件委托被使用来为ul添加点击事件监听器。当点击ul下的li元素时,其背景颜色会变成红色。

//事件委托:将事件监听委托给祖先元素(一般委托给父元素)
//事件委托实现的原理是利用事件冒泡
//1.先获取到ul
var ul = document.querySelector('.menu');
//2.为ul添加click事件
ul.onclick = function (e) {if (e.target.nodeName == 'LI')e.target.style.backgroundColor = 'red';
};

通过事件委托,可以在新的li元素被添加时,仍然能够保持对它们的事件监听。

🎯核心代码

<input type="button" value="添加列表项" onclick="addLi()">

🎯效果展示

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

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

相关文章

一文搞定关于SkyWalking告警的那些事儿

Apache SkyWalking告警是由一组规则驱动&#xff0c;这些规则定义在config/alarm-settings.yml文件中。 告警规则 告警规则定义了触发告警所考虑的条件。告警规则有两种类型&#xff0c;单独规则和复合规则&#xff0c;复合规则是单独规则的组合。这里重点介绍一下单独规则&a…

小程序视频怎么保存到本地

掌握视频下载高手的妙招&#xff0c;轻松将微信小程序中的视频内容保存到本地&#x1f4e5;。遵循本文步骤&#xff0c;无需繁琐操作&#xff0c;快速实现视频下载&#xff0c;享受随时观看的便捷。 下载高手我已经打包好了 下载高手链接&#xff1a;https://pan.baidu.com/s…

【位运算】Leetcode 丢失的数字

题目解析 268. 丢失的数字 本题的意思就是数组的长度为n&#xff0c;在[0,n]区间中寻找缺失的一个数字 算法讲解 直观思路&#xff1a;排序 Hash&#xff0c;顺序查找缺失的数字 优化&#xff1a;使用异或&#xff0c;首先将[0,n]之间所有数字异或在一起&#xff0c;然后将…

MGRE-OSPF接口网络类型实验

OSPF接口网络类型实验 一&#xff0c;实验拓扑 初始拓扑&#xff1a; 最终拓扑&#xff1a; 二&#xff0c;实验要求及分析 要求&#xff1a; 1&#xff0c;R6为ISP只能配置IP地址&#xff0c;R1-R5的环回为私有网段 2&#xff0c;R1/R4/R5为全连的MGRE结构&#xff0c;R…

LeetCode 349. 两个数组的交集

LeetCode 349. 两个数组的交集 1、题目 力扣题目链接&#xff1a;349. 两个数组的交集 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的 交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1&#xff1a; 输入&#xff1a;nums1 […

代码随想录算法练习Day13:有效的字母异位词

题目&#xff1a; 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 题目链接&#xff1a;242.有效的字母异位词 卡哥的视频讲解&#xff…

2024国内外常用药物研发数据库(收藏备用)

几十年前&#xff0c;医药研发领域数据查询可谓是一项繁琐而复杂的工作&#xff0c;研发人员需要耗费大量的时间和精力&#xff0c;穿梭于各类纸质文献、专业期刊和实验报告中&#xff0c;寻找各类宝贵数据。然而随着科技的发展&#xff0c;众多医药专业数据库如雨后春笋般涌现…

mysql 查询实战2-解答

看了mysql 查询实战2-题目-CSDN博客的题目&#xff0c;继续进行解答。 6、查询⽹站访问⾼峰期 目标&#xff1a; 查询网站访问高峰时期&#xff0c;高峰时期定义&#xff1a;至少连续三天访问量>1000 1&#xff0c;关联查询 要连续三天&#xff0c;至少要声明“自身”三个去…

淄博烧烤、天水麻辣烫-《实现领域驱动设计》中译本评点-第2章(5)

相关链接 DDD领域驱动设计批评文集>> 汪峰哭晕在厕所-《实现领域驱动设计》中译本评点-第2章&#xff08;1&#xff09; 可不是乱打的-《实现领域驱动设计》中译本评点-第2章&#xff08;2&#xff09; “领域”的错误定义-《实现领域驱动设计》中译本评点-第2章&…

关于机器学习/深度学习的一些事-答知乎问(六)

如何使用频率域变换对序列数据进行增强&#xff1f; 时频变换是常见的信号分析思路&#xff0c;同样可用于数据增强。在频率域添加噪声是方法之一。比如可以对传感器信号应用短时傅里叶变换STFT得到具有时序关系的谱特征&#xff0c;再在谱特征上应用两种数据增强方法。一是对…

版本控制工具Git的使用

1、Git的基本概念和使用 1、Git是什么? ● Git: 是一个开源的分布式版本控制系统&#xff0c;可以有效、高速的处理从很小到非常大的项目版本管理。 ● GitHub: 全球最大的面向开源及私有软件项目的托管平台,免费注册并且可以免费托管开源代码。 ● GitLab:与GitHub类似&a…

IDP之Backstage - 环境搭建

0. 目录 1. 前言2. 环境准备&#xff08;Windows10下&#xff09;2.1 安装nvm2.2 git和docker安装 3. 创建模板项目3.1 典型错误: fails on the yarn install step3.2 再次启动3.3 验证 4. 相关 1. 前言 本不想写这篇&#xff0c;因为看着官网文档写着挺简单的&#xff0c;但实…