114-----JS基础-----事件的委派(实际是利用了事件的冒泡)

2023-11-12

一 代码

不难,事件的委派就是利用了事件的冒泡。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script type="text/javascript">
			
			window.onload = function(){
				
				var u1 = document.getElementById("u1");
				
				// 点击按钮以后添加超链接
				var btn01 = document.getElementById("btn01");
				btn01.onclick = function(){
					//创建一个li
					var li = document.createElement("li");
					li.innerHTML = "<a href='javascript:;' class='link'>新建的超链接</a>";
					
					//将li添加到ul中
					u1.appendChild(li);
				};
				
				
				/*
				 * 1. 为每一个超链接都绑定一个单击响应函数
				 * 这里我们为每一个超链接都绑定了一个单击响应函数,这种操作比较麻烦,
				 * 	而且这些操作只能为已有的超链接设置事件,而新添加的超链接必须重新绑定
				 */
				//获取所有的a
				var allA = document.getElementsByTagName("a");
				//遍历
				/*for(var i=0 ; i<allA.length ; i++){
					allA[i].onclick = function(){
						alert("我是a的单击响应函数!!!");
					};
				}*/
				
				/*
				 * 2. 我们希望,只绑定一次事件,即可应用到多个的元素上,即使元素是后添加的
				 * 我们可以尝试将其绑定给元素的共同的祖先元素
				 * 
				 * 事件的委派
				 * 	- 指将事件统一绑定给元素的共同的祖先元素,这样当后代元素上的事件触发时,会一直冒泡到祖先元素
				 * 		从而通过祖先元素的响应函数来处理事件。
				 *  - 事件委派是利用了冒泡,通过委派可以减少事件绑定的次数,提高程序的性能。
				 * 
				 * 类似C++的继承,继承后的派生类得到这些共同属性。
				 */
				
				//为ul绑定一个单击响应函数
				u1.onclick = function(event){
					event = event || window.event;
					
					/*
					 * 3. target
					 * 	- event中的target表示的触发事件的对象
					 */
					//alert(event.target);
					
					
					//如果触发事件的对象是我们期望的元素,则执行否则不执行
					if(event.target.className == "link"){
						alert("我是ul的单击响应函数");
					}
					
				};
				
			};
			
		</script>
	</head>
	<body>
		<button id="btn01">添加超链接</button>
		
		<ul id="u1" style="background-color: #bfa;">
			<li>
				<p>我是p元素</p>
			</li>
			<li><a href="javascript:;" class="link">超链接一</a></li>
			<li><a href="javascript:;" class="link">超链接二</a></li>
			<li><a href="javascript:;" class="link">超链接三</a></li>
		</ul>
		
	</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

114-----JS基础-----事件的委派(实际是利用了事件的冒泡) 的相关文章

随机推荐

  • 计算机组成原理——指令系统题库

    指令系统题库 选择题 1 以下有关指令系统的说法中错误的是什么 A 指令系统是一台机器硬件能执行的指令全体 B 任何程序运行前都要先转化为机器语言 C 指令系统是计算机软件 硬件的界面 D 指令系统和机器语言是无关的 2 在CPU执行指令的
  • tip消息定时弹窗功能 核心代码

    for var i 0 i lt 5 i var j 0 var arr 1 2 5 7 8 setTimeout function console log arr j i 3000
  • 深度学习与神经网络笔记

    在正式学习之前 首先清楚一下当前出现了很多次的概念是什么 这些概念之间的关系是什么 人工智能 AI 研究 开发用于模拟 延伸和扩展人的智能的理论 方法 技术和应用系统的一门新的技术科学 机器学习 实现人工智能的一种途径 以机器学习为手段解决
  • 《现代C++教程》笔记(2)

    2 语言可用性的强化 2 1 常量 nullptr 问题 C 不允许直接将 void 隐式转换到其他类型 但如果编译器尝试把 NULL 定义为 void 0 那么在下面这句代码中 char ch NULL 没有了 void 隐式转换的 C
  • 处理系统装机后BitLocker锁硬盘问题

    处理系统装机后BitLocker锁硬盘问题 今天重装公司里面的电脑发现装好后系统的D E盘被BitLocker锁住了 然后总结出了以下两种解决方法 可能不是非常详细但是还是希望可以对大家有所帮助 文章目录 处理系统装机后BitLocker锁
  • 总结使用Unity3D优化游戏运行性能的经验

    一 遇到麻烦时要调用 垃圾回收器 Garbage Collector 无用单元收集程序 以下简称GC 由于具有C C 游戏编程背景 我们并不习惯无用单元收集程序的特定行为 确保自动清理你不用的内存 这种做法在刚开始时很好 但很快你就公发现自
  • 2021-06-20

    TIM2 PWM部分初始化 PWM输出初始化 arr 自动重装值 psc 时钟预分频数 void TIM2 PWM Init u16 arr u16 psc GPIO InitTypeDef GPIO InitStructure TIM T
  • Symbol类型详解

    Symbol类型详解 symbol类型通过Symbol函数生成 用于表示独一无二的值 不使用new关键字 直接调用即可创建 例 const s Symbol str 即使使用相同的字符串来创建Symbol类型的值 这些值也是不同的 symb
  • 基于MATLAB GUI的裂缝检测(识别)系统(支持向量机)

    主要内容 本文对裂缝检测技术进行了深入研究 并结合裂缝图像的特征 提出了一种基于传统机器学习和图像处理技术的裂缝检测方法 实现裂缝基本参数的计算和显示 内容如下 1 裂缝图像采集 无人机 2 裂缝图像预处理 3 裂缝分割 提取 裂缝连接 4
  • 【Spring学习03】Spring简单入门实例

    本文博客地址 http blog csdn net soonfly article details 68498742 转载请注明出处 国际惯例 从一个简单的例子入门 轻松了解依赖注入 拿之前提到的场景 假设我们开发了一套管理系统 每收到一笔
  • GPS纠偏算法,适用于google,高德体系的地图

    GPS纠偏算法 适用于google 高德体系的地图 精确度还比较高 我试了一下比高德本身的纠偏还精确点 gps纠偏算法 适用于google 高德体系的地图 author Administrator public class GpsCorre
  • IOS H5 输入框输入后不显示内容,需要失焦后才显示

    input 框输入文本后 还在 focus 的状态 输入的内容显示空白 点击完成失去焦点后内容才出来 解决方案 input 框增加一个样式 transform translateZ 0
  • C++ : 矩阵初等行变换,化成最简矩阵

    化成最简矩阵分成如下步骤 从矩阵的第 i 0 行开始化简 1 寻找最长元素行 从第i行开始 寻找第一个开头行元素非0的行 利用行交换把该行换到矩阵的第i行 2 对第i行进行化简 对第i行的所有元素同除该行的首个非0元素 3 矩阵行化简 从矩
  • linux系统日志查看-停止-继续

    linux系统日志查看 停止 继续 查看日志实时刷新 tail f 文件名 查看显示1000行 tail 1000f 文件名 查看暂停刷新 按键 Ctrl s 查看继续刷新 按键 Ctrl q 查看尾部最后100行 tail n 10 te
  • c语音动态内存分配,内存重新分配,内存释放,指针运算

    c语音基础 中的基础 大神请直接关闭本页面 多谢合作 总结下这学习到的知识点 define CRT SECURE NO WARNINGS include
  • Windows 10快速在指定目录打开命令行

    一 我们在想要到达的目录上按住shift键并点击鼠标右键 看到了吗 这时候在弹出菜单里多了一个选项 就是 在此处打开命令窗口 我们点开看一下 二 不过有时候我们需要以管理员的权限来打开命令行 这时候我们需要自行添加一个脚本 方便操作 你可以
  • 蓝桥杯 排列序数

    标题 排列序数 X星系的某次考古活动发现了史前智能痕迹 这是一些用来计数的符号 经过分析它的计数规律如下 为了表示方便 我们把这些奇怪的符号用a q代替 abcdefghijklmnopq 表示0 abcdefghijklmnoqp 表示1
  • Elasticsearch分布式全文搜索引擎

    文章目录 一 Elasticsearch 是什么 二 ES安装 1 安装软件 2 启动失败问题解决 三 ES入门 1 数据格式 2 索引 3 文档操作 4 映射操作 5 高级查询 一 Elasticsearch 是什么 Elasticsea
  • 【华为OD机试】最小传输时延I【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 某通信网络中有N个网络结点 用1到N进行标识 网络通过一个有向无环图表示 其中图的边的值表示结点之间的消息传递时延 现给定相连节点之间的时延列表times i u v
  • 114-----JS基础-----事件的委派(实际是利用了事件的冒泡)

    一 代码 不难 事件的委派就是利用了事件的冒泡