2

垂直メニューの問題について少しアドバイスが必要です。

私の問題は、ボタンをクリックすると、他のボタンが1ピクセル下に移動してから、再び上に戻ることです。ただ根付いているように見えます。たとえば、「マイケル」、「ジョーンズ」、「クウェート」、「スーパーマン」をクリックします。画面の下部に向かって少し移動し、元の位置にリセットされます。

var accordion_head = $('.accordion > li > a'),  
accordion_body = $('.accordion li > .sub-menu');
accordion_head.on('click', function (event) {
    if ($(this).attr('class') != 'active') {
        accordion_body.slideUp('normal');
        $(this).next().stop(true, true).slideToggle('normal');
        accordion_head.removeClass('active');
        $(this).addClass('active');
    }
});

ここで見つけることができます:http://jsfiddle.net/RTcf3/

これはどのように修正できますか?助けていただければ幸いです。

どうもありがとう、素晴らしい週末を

TD。

4

1 に答える 1

1

編集:コードを少し変更して、現在のメニューに実際にサブメニューがあるかどうかを確認して、空の ul を表示しようとしないようにします (サブメニューのあるメニューとサブメニューのないメニューがある場合) )。そのために助けが必要な場合はお知らせください。

これが私がこのフィドルに持っているものです:

$('.accordion > li').on('click', function (evt) {
    var accordion_body = $('.sub-menu', this);
    if($(this).hasClass('active')) {

    } else {
        $('.active .sub-menu').slideUp();
        $('.active').removeClass('active');
        $(this).addClass('active');
        if(accordion_body.is(':empty')){

        } else {
            accordion_body.slideDown('normal');
        }
    }   
});

また、CSS に小さな変更を加えました。表示しているアンカー リンクがあります: 相対。子タグがないため、まったく意味がありません。

于 2013-01-18T21:10:19.477 に答える