1

以下は、左側のリンクをクリックするとうまく機能し、右側のパネルはslideUpのようにアニメーション化されます。しかし、同じリンクをもう一度クリックすると、パネルが非表示になります。しかし、私はパネルを非表示にしたくありません。上記のコードで修正する必要があることを教えてください。

$(function() {
    $('div.panel').hide();
    $('div.panel:first').addClass('active').show();
    $('li.link').click(function() {
        var id = $(this).attr('rel');
        var showing = $(id).is(':visible');
        $('div.panel').slideUp('slow');
        $('li.link').removeClass('active');
        if (!showing) {
            $(id).slideDown('fast', function() {
                $('html,body').animate({
                    scrollTop: 0
                }, 'slow')
            });
            $(this).addClass('active');
        }
    });
});
4

1 に答える 1

0

.slideUp呼び出しをifブロック内に移動します。現在のページに対応するリンク以外のリンクをクリックした場合にのみ、何かをしたいでしょう。

$('li.link').click(function() {
    var id = $(this).attr('rel');
    var showing = $(id).is(':visible');
    $('li.link').removeClass('active');
    $(this).addClass('active');
    if (!showing) {
        $('div.panel').slideUp('slow');
        $(id).slideDown('fast', function() {
            $('html,body').animate({
                scrollTop: 0
            }, 'slow')
        });
        $(this).addClass('active');
    }
});
于 2012-04-11T07:24:31.087 に答える