2

我需要一些关于我的垂直菜单问题的建议。

我现在的问题是,当我单击一个按钮时,我的其他按钮会向下移动一个像素,然后再次直接向上移动。只是看起来生根发芽。例如点击“迈克尔”、“琼斯”、“科威特”我们的“超人”。您会看到屏幕底部有一个小的移动,然后它会自行重置到原来的位置。

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/

如何解决这个问题?帮助表示赞赏。

非常感谢,周末愉快

道明。

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 回答