jQuery .on() and .off() 命名空间

jQuery事件绑定与解绑
本文介绍了jQuery 1.7及以后版本中新的事件绑定机制,包括如何使用.on()和.off()方法进行事件绑定和解绑。同时,还详细解释了如何利用事件命名空间来精确控制事件触发和解除绑定。

jQuery1.7开始,jQuery引入了全新的事件绑定机制,jQuery .on() 和 off() 两个函数统一处理事件绑定,也是jQuery触发DOM元素事件的最佳方法。有时候既要trigger手动触发事件,也要从DOM元素上解绑事件,比如:

$('.item').on('click', doThisCoolThing);
$('.item').on('click', doThisOtherCoolThing);
$('.item').trigger('click'); // 两个click事件都触发
$('.item').off('click'); // 两个click事件都解绑

 

使用事件命名空间我们可以在创建事件的时候指派名称到事件处理器,并在使用trigger()和off()时通过这个名称指定到特定的函数。调用的时候就可以通过使用不同的命名空间灵活的指派事件. 比如:

$('.item').on('click.navigate', doThisCoolThing);
$('.item').on('click.notify', doThisOtherCoolThing);
$('.item').trigger('click.navigate'); // 只有带有navigate这个命名空间的方法才会触发
$('.item').off('click.notify'); // 只有带有notify这个命名空间的方法才会解绑

 

也可以使用多个命名空间,无论使用哪个名字都会生效,通过命名空间代码规范(产品.模块.事件)让事件的层次更清晰:

$('.item').on('click.navigate.notify', doThisCoolThing);
$('.item').trigger('click.navigate'); // 将触发click事件
$('.item').off('click.notify'); // 将解绑click事件

 

参考资料: 
http://www.andismith.com/blog/2011/11/on-and-off/
http://www.andismith.com/blog/2013/02/jquery-on-and-off-namespacing/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值