13

两周前在这里问了同样的问题后,我终于找到了“解决方案”。这就是为什么我要回答我自己的问题。;)

如何在 JQUERY 中绑定、取消绑定和重新绑定事件?

4

2 回答 2

13

这是完美的解决方案。(至少对我来说。)

$(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() 或 ...!

请参阅文档

这是一个尝试并尝试它的小提琴!

享受!

于 2012-12-18T20:02:15.053 回答
3

一个更简单且简短的解决方案是,如果要取消绑定,则向对象添加一个类,然后删除该类以重新绑定 ex;

$('#button').click( function(){
   if($(this).hasClass('unbinded')) return;
   //Do somthing
 });

$('#toggle').click(function(){
    $('#button').toggleClass('unbinded');
 });
于 2016-01-07T21:54:44.150 回答