jquery on 与 bind 事件绑定区别

博客主要介绍了jQuery中on与bind事件绑定的区别。语法上,on()和bind()各有特点。区别在于on()比bind()多了selector参数,该参数可用于事件委托,能避免子元素过多时影响性能,还可让动态增加的元素绑定指定事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jquery on 与 bind 事件绑定区别
语法说明:
  1. on()

    .on(events [,selector][,data],handler)
    
  2. bind()

    .bind(events [,eventsData],handler)
    
区别说明:
  • on() 比 bind() 多了一个参数: selector
  • selector 参数存在意义:事件冒泡进行事件委托
    1. 子元素过多,给每个子元素增加一个事件,会影响性能;
    2. 动态增加的元素也能绑上指定的事件;
事例展示:
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>on 与 bind 事件绑定区别</title>
	<script src="./js/jquery.min.js"></script>
</head>
<style>
	.contain{
		width:300px;
		height:500px;
		margin:100px auto;
	}
	.contain ul{}
	.contain ul li{
		width:100%;
		height:35px;
		margin-bottom:15px;
		list-style: none;
	}
	.contain ul li button{
		cursor: pointer;
	}
</style>
<body>
	<div class="contain">
		<ul id="BtnBind">
			<li><button type="button">绑定bind方法1</button></li>
			<li><button type="button">绑定bind方法2</button></li>
		</ul>
		<hr>
		<ul id="BtnOn">
			<li><button type="button">绑定on方法1</button></li>
			<li><button type="button">绑定on方法2</button></li>
		</ul>
	</div>

	<script>
		$(function(){
			//使用bind, 下面动态加载的不能绑定上点击事件
			$('#BtnBind > li > button').bind('click',function(){
				alert($(this).text());
			});

			//使用on, 下面动态加载的可以绑定上点击事件
			$('#BtnOn').on('click','li > button',function(){
				alert($(this).text());
			});

			var timer = setTimeout(function(){
				$('#BtnBind').append('<li><button type="button">绑定bind方法3 点击无效果</button></li>');
				$('#BtnOn').append('<li><button type="button">绑定on方法3 点击有效果</button></li>');
				clearTimeout(timer);
			},3000);

		});
	</script>
</body>
</html>

好的记性也需要不断的练习!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值