3

通过按第一个按钮,您将为第二个按钮设置动画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');       
    })

})();​

你可以在这里弄乱它

4

1 回答 1

2

您实际上可以在.on(). 这意味着您可以定义一个函数marginFunc(),然后将其绑定到点击使用

function marginFunc() {
 ...
}

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

完成后,您可以使用.unbind('click', marginFunc) .off('click', marginFunc)解绑它。
之后,您可以以与开始时相同的方式重新绑定。

在这里工作 jsfiddle

于 2012-11-23T07:01:36.053 回答