jQuery Accordion的简单问题

时间:2013-03-05 15:05:09

标签: javascript jquery css accordion

我有一个简单的jQuery手风琴,可以很好地工作...... 几乎:)

正如您在演示中所看到的,我目前的导航是“打开”,因为我在“团队”页面中。

当我点击“关于我们”时,它是否可以完全关闭元素。正如您从演示中看到的那样,它关闭了它,然后快速重新打开它。我想这是因为我的CSS的第27行上的代码。

以下是演示http://jsfiddle.net/URYzK/5/

这是我的JavaScript:

jQuery(function($) {

    $('#accordion > li > a').click(function (e) {
        if ($(this).next('ul').length == 0) {
            // link is for navigation, do not set up accordion here
            return;
        }

        // link is for accordion pane

        //remove all the "Over" class, so that the arrow reset to default
        $('#accordion > li > a').not(this).each(function () {
            if ($(this).attr('rel')!='') {
                $(this).removeClass($(this).attr('rel') + 'Over');
            }

            $(this).siblings('ul').slideUp("slow");
        });

        //showhide the selected submenu
        $(this).siblings('ul').slideToggle("slow");

        //addremove Over class, so that the arrow pointing downup
        $(this).toggleClass($(this).attr('rel') + 'Over');
        e.preventDefault();
    });

});

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

display:none移除#accordian ul并完全删除.children CSS。我相信这会创造出你想要的行为。您将孩子ul设置为display:none,然后尝试强制.children uldisplay:block以后{{1}},这就是为什么他们在战斗。

也更新了你的jsFiddle。