2

ボタンのクリックで上下にアニメーション化する必要がある div があり、アニメーション化されている (または開いている) 場合は、本体をクリックすると閉じる必要があります。これは正常に機能しますが、ボディを使用して閉じると、最初のクリックでトグル ボタンが再び機能しなくなります。これに対する簡単な修正があることを願っています。どんな助けでも大歓迎です、ありがとう!

$('#button').toggle(function(event){
        event.preventDefault();
        $('#box').animate({top: '0'}, 300);
    },function(event){  
        event.preventDefault();    
        $('#box').animate({top: '-100px'}, 300);
    });

    $("body").click(function(event) {
        if ($(event.target).closest('#box').length === 0) {
            $('#box').animate({top: '-100px'}, 300);
        }
    });

http://jsfiddle.net/user1688604/ve7VA/1/

4

1 に答える 1

1

toggleevent メソッドは非推奨ですclick。代わりに method を使用できます。clickand と 条件ステートメントを使用すると、この問題を解決できます。

$('#button').click(function (event) {
    event.preventDefault();
    var $box = $('#box'),
        val = $box.css('top') === '0px' ? '-100px' : '0px';
    $box.stop().animate({
        top: val
    }, 300);
});

http://jsfiddle.net/Wdjys/

于 2013-03-19T18:10:54.203 に答える