2024-1-22页面加载和事件委托

页面加载

当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。这是事件模块中最重要的一个函数。

有两种写法:

$(document).ready(function(){
// 在这里写你的JS代码...
})

简写:

$(function(){
// 你在这里写你的代码
})

以事件冒泡为例子

非简写的情况:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>事件冒泡</title>
		<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
		<style>
			#a{
				width: 500px;
				height: 500px;
				background-color: red;
			}
			#b{
				width: 400px;
				height: 400px;
				background-color: green;
			}
			#c{
				width: 200px;
				height: 200px;
				background-color: black;
			}
		</style>
	</head>
	<body>
		<div id="a">
			<div id="b">
				<div id="c"></div>
			</div>
		</div>
		<script>
			$(document).ready(function(){
				$("#a").on("click",function(){
					alert('第一')
				});
				$("#b").on("click",function(){
					alert("第二")
				});
				$("#c").on("click",function(e){
					alert('第三')
					e.stopPropagation()
				});
			})//这里将需要使用的事件添加到该页面加载中

		</script>
	</body>
</html>

简写的情况:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>事件冒泡</title>
		<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
		<style>
			#a {
				width: 500px;
				height: 500px;
				background-color: red;
			}

			#b {
				width: 400px;
				height: 400px;
				background-color: green;
			}

			#c {
				width: 200px;
				height: 200px;
				background-color: black;
			}
		</style>
	</head>
	<body>
		<div id="a">
			<div id="b">
				<div id="c"></div>
			</div>
		</div>
		<script>
			$(function(){
				$("#a").on("click", function() {
					alert('第一')
				});
				$("#b").on("click", function() {
					alert("第二")
				});
				$("#c").on("click", function(e) {
					alert('第三')
					e.stopPropagation()
				});
			})
			// $(document).ready(function(){
			// 	$("#a").on("click",function(){
			// 		alert('第一')
			// 	});
			// 	$("#b").on("click",function(){
			// 		alert("第二")
			// 	});
			// 	$("#c").on("click",function(e){
			// 		alert('第三')
			// 		e.stopPropagation()
			// 	});
			// })//这里将需要使用的事件添加到该页面加载中
		</script>
	</body>
</html>

效果和冒泡效果的一样

事件委托

事件委托是通过事件冒泡的原理,利用父标签去捕获子标签的事件。

首先我在网页动态添加一个button按钮和文档里的button按钮同时存在,然后将这个按钮放在文档button按钮后面

如图

但是这个新添加的标签不会有效果

然后就可以使用事件委托了

格式如下:

$("table").on("click", ".delete", function () {
  // 删除按钮绑定的事件
})

例子代码如下

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>事件委托</title>
		<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
	</head>
	<body>
		<button>点击</button>
		<script>
			$("body").on("click","button",function(){
				console.log(123)
			})//这里相当于将body标签内的button标签都添加了这个事件,哪怕是在网页添加的也有这个事件
		</script>
	</body>
</html>

结果如图

该事件委托的方法就会让body标签内的所有button在被点击的时候使用父标签委托的事件(相当于你的父标签留给你的事情)。

posted @   scxlzb  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示