How to bind, unbind and rebind (click) events in JQuery

廉价感情. 提交于 2019-11-26 16:30:55

问题


After asking the same question 2 weeks ago here, I finally found "the" solution. This is why I am answering my own question. ;)

HOW TO BIND, UNBIND AND REBIND EVENTS IN JQUERY?


回答1:


And THIS is the perfect solution. (At least for me.)

$(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()" does it. NOTE: It is important to bind the event like you can see on line one! It does not work with .click() or …!

See the docs!

Here is a fiddle to try it and experiment with it!

Enjoy!




回答2:


A simpler and short solution is to add a class to the object if you want to unbind it then remove this class to rebind ex;

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

$('#toggle').click(function(){
    $('#button').toggleClass('unbinded');
 });


来源:https://stackoverflow.com/questions/13940591/how-to-bind-unbind-and-rebind-click-events-in-jquery

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!