两周前在这里问了同样的问题后,我终于找到了“解决方案”。这就是为什么我要回答我自己的问题。;)
如何在 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() 或 ...!
请参阅文档!
这是一个尝试并尝试它的小提琴!
享受!
一个更简单且简短的解决方案是,如果要取消绑定,则向对象添加一个类,然后删除该类以重新绑定 ex;
$('#button').click( function(){
if($(this).hasClass('unbinded')) return;
//Do somthing
});
$('#toggle').click(function(){
$('#button').toggleClass('unbinded');
});