如何重新绑定未绑定的链接/对象

时间:2012-11-23 06:40:36

标签: jquery bind unbind

按第一个按钮,您将为第二个按钮的margin-left设置动画,按第二个按钮,解除第一个按钮事件的绑定,但是我想让第三个按钮绑定点击事件回到第一个。

当然,寻找一个简单的解决方案!

这就是代码的样子:

<div class="button"><a href="http://www.google.com">something</a></div>
<div class="button2"><a href="http://www.google.com">something2</a></div>
<div class="button3"><a href="http://www.google.com">something3</a></div>

​(function(){
    $('.button a').on('click', function(e){
         e.preventDefault();
        $('.button2').animate({'margin-left': '+=2'}, 100);       
    })

    $('.button2').on('click', function(e){
         e.preventDefault();
         $('.button a').unbind('click');       
    })

    $('.button3').on('click', function(e){
         e.preventDefault();
         $('.button a').bind('click');       
    })

})();​

你可以搞砸它here

1 个答案:

答案 0 :(得分:2)

您实际上可以在.on()中使用命名函数。这意味着您可以定义函数marginFunc(),然后使用

将其绑定到单击
function marginFunc() {
 ...
}

$(someElement).on('click', marginFunc);

完成后,您可以使用.unbind('click', marginFunc) .off('click', marginFunc)取消绑定。 之后,您可以像开始时一样重新绑定。

Working jsfiddle here