jquery中bind事件时的命名空间用法

本文介绍了一种使用命名空间方法在jQuery中解决点击事件解绑时误伤问题的技术,通过为事件添加特定命名来实现精确解绑和触发指定事件处理函数。

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

  • 场景:页面上的某个元素bind多个click事件处理函数,视用户的具体交互情况来决定到底使用哪个处理函数。
  • 问题
    1. unbind时会解绑所有的click事件,造成误伤。如果之前bind时有定义处理函数的方法名,可以通过将方法名传给unbind的第二个参数来解绑指定的bind;但很多情况下bind的处理函数都是匿名函数,此时unbind的第二个参数无法处理。
    2. click事件发生时无法指定调用某个具体的事件处理函数,只能将不该调用的函数给unbind掉。
  • 解决:采用命名空间,命名空间用法
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<input type="text" id="test">
<script>
$("#test").bind('click.a',function(){
	alert(1);
});
$("#test").bind('click.b',function(){
	alert(2);
});
$("#test").bind('click.c',function(){
	alert(3);
});
$("#test").unbind('click.a');	//解绑a
$("#test").trigger('click.c');	//弹出3
$("#test").click();	//弹出2、弹出3
</script>




通过事件名(click)后加'.'来指定新的命名,本例中分别指定的新的命名a、b、c,这样在unbind时就可以解绑指定的函数;在trigger时就可以调用指定的函数。很多js扩展功能都采用命名空间来区分出自己的事件和避免与页面原有事件产生冲突。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值