Javascript手风琴菜单,点击一次展开,点击两次链接

javascript accordion menu that clicks once to expand, click twice to link

本文关键字:链接 两次 手风琴 菜单 Javascript 一次      更新时间:2023-09-26

我试图让一个手风琴菜单按照我想要的方式运行,但它不会响应我的声音请求。

我希望按照下列规则行事:

如果没有子菜单,则进入已设置的链接。

如果有子菜单,展开它,并设置下一步。

如果子菜单,并且已展开,则单击标题将转到相应的链接。

手风琴部分工作良好,但'一旦展开,但再次点击'链接部分不。任何提示和/或指示将是非常感激的。

我使用的代码如下:

function initMenus() {
    $('ul#treeview ul').hide();
    $.each($('ul#treeview'), function(){
        $('#' + this.id + '.expandfirst ul:first').show();
    });
    $('ul#treeview li a').click(
        function() {
            var checkElement = $(this).next();
            var parent = this.parentNode.parentNode.id;
                if($('#' + parent).hasClass('noaccordion')) {
                    $(this).next().slideToggle('normal');
                    return false;
                }
                if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
                    if($('#' + parent).hasClass('collapsible')) {
                        $('#' + parent + ' ul:visible').slideUp('normal');
                    }
                    return false;
                }
            if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
                $('#' + parent + ' ul:visible').slideUp('normal');
                checkElement.slideDown('normal');
                return false;
            }
        }
    );
}
$(document).ready(function() {initMenus();});

确保您的click事件到达该函数的末尾,并且在没有子项要展开时不返回false。返回false将停止访问该href。