3

最初のボタンを押すと、2 番目のボタンがアニメーション化margin-leftされ、2 番目のボタンを押すと、最初のボタンからクリック イベントのバインドが解除されますが、クリック イベントを最初のボタンにバインドする 3 番目のボタンが必要です。

もちろん、簡単な解決策を探しています!

コードは次のようになります。

<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 に答える