首页 > js学习 > js基础知识 > jQuery中on、off和one
2016
12-16

jQuery中on、off和one

jQuery绑定事件和解绑的方法有三组共六个(绑定事件bind()和unbind(),事件委托.live()和.die()还有delegate()和undelegate())。由于这三组的共存可能会造成一定的混乱,为此 jQuery1.7以后推出了.on()和.off()方法彻底摒弃前面三组。

用on()替代bind()方式:

$('.button').on('mouseover mouseout',function(){});//替代.bind()方式,并绑定一个或多个事件

$('form').on('submit', function () {return false;}); //替代.bind()方式,阻止默认行为并取消冒泡

$('form').on('submit', false); //替代.bind()方式,阻止默认行为并取消冒泡的简写

用off()替代unbind()方式,移除事件

$('.button').off('click');

on()替代live()和delegate(),事件委托

$('#box').on('click', '.button', function (){$(this).clone().appendTo('#box');});

off()替代die()和undelegate(),取消事件委托

$('#box').off('click', '.button');

不管是.bind()还是.on(),绑定事件后都不是自动移除事件的,需要通过.unbind()和.off()来手工移除。jQuery 提供了.one()方法,绑定元素执行完毕后自动移除事件,可以方法仅触发一次的事件。

$('.button').one('click', function(){alert('one仅触发一次!');}); //绑定事件只触发一次

$('#box).one('click','click',function(){});//委托事件只触发一次

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。