在2个星期前这里问了同样的问题后,我终于找到了“最佳”解决方案。这就是为什么我要回答自己的问题的原因。 ;)
如何在jQuery中绑定、解除绑定和重新绑定事件?
而这正是完美的解决方案。(至少对我来说是这样。)
$(document).on('click', 'a#button', function(){
$(this).after('<span> hello</span>');
$('span').fadeOut(1000);
});
$('a#toggle').toggle(
function(){
$(this).text('rebind');
$('a#button').on('click.disabled', false);
},
function(){
$(this).text('unbind');
$('a#button').off('click.disabled');
}
);
".on()"可以实现这个功能。注意:像第一行所示的绑定事件非常重要!使用 ".click()" 或其他方法无法实现此功能!
请查看文档!
这里有一个JSFiddle链接,你可以尝试并进行实验!
愉快地使用吧!
.toggle()
方法在 jQuery 1.8 中已被弃用,并在 jQuery 1.9 中被移除。(来源 - jQuery.com) - Laurence Cooper如果您想解除绑定对象,较为简单且简短的方法是向该对象添加一个类,然后删除该类以重新绑定,例如:
$('#button').click( function(){
if($(this).hasClass('unbinded')) return;
//Do somthing
});
$('#toggle').click(function(){
$('#button').toggleClass('unbinded');
});