Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery手风琴在子页面上时保持菜单在页面之间打开_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript jQuery手风琴在子页面上时保持菜单在页面之间打开

Javascript jQuery手风琴在子页面上时保持菜单在页面之间打开,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有以下导航,使用下面的jquery accordion代码。目前,每个#顶级导航项都设置为打开和关闭以显示子项。我想修改代码,这样当用户登陆到它的任何子节点时,保持打开状态 供您参考的屏幕截图: 非常感谢您的帮助。提前谢谢 <ul class="nav"> <li id="top-level" class="has-drop"><a class="opener" href="/index.php/visitor-information/"><

我有以下导航,使用下面的jquery accordion代码。目前,每个
#顶级
导航项都设置为打开和关闭
以显示子项。我想修改代码,这样当用户登陆到它的任何子节点时,
保持打开状态

供您参考的屏幕截图:

非常感谢您的帮助。提前谢谢

<ul class="nav">
    <li id="top-level" class="has-drop"><a class="opener" href="/index.php/visitor-information/"><em>Visitor Information</em></a>
        <div class="slide">
            <ul>
                <li><a href="/index.php/visitor-information/visitor-information/">Visitor Information</a></li>
                <li><a href="/index.php/visitor-information/about-our town/">About our town</a></li>
                <li><a href="/index.php/visitor-information/gallery/">Gallery</a></li>
                <li><a href="/index.php/visitor-information/im-hungry/">I'm Hungry</a></li>
            </ul>
        </div>
    </li>
    <li id="top-level" class="has-drop"><a class="opener" href="/index.php/membership/"><em>Membership</em></a>
        <div class="slide">
            <ul>
                <li><a href="/index.php/membership/membership/">Membership</a></li>
                <li><a href="/index.php/membership/advocacy/">Advocacy</a></li>
                <li><a href="/index.php/membership/ambassadors/">Ambassadors</a></li>
                <li><a href="/index.php/membership/board-of-directors/">Board Of Directors</a></li>
            </ul>
        </div>
    </li>
    <li id="top-level" class=""><a class="opener" href="/index.php/upcoming-events/"><em>Upcoming Events</em></a></li>
    <li id="top-level" class="has-drop"><a class="opener" href="/index.php/online-store/"><em>Online Store</em></a>
        <div class="slide">
            <ul>
                <li><a href="/index.php/online-store/online-store/">Online Store</a></li>
                <li><a href="/index.php/online-store/business-compliance-materials/">Business Compliance Materials</a></li>
                <li><a href="/index.php/online-store/events/">Events</a></li>
                <li><a href="/index.php/online-store/membership-products/">Membership Products</a></li>
            </ul>
        </div>
    </li>
    <li id="top-level" class=""><a class="opener" href="/index.php/contact-us/"><em>Contact us</em></a></li>
</ul>

孩子们是通过AJAX加载的,还是菜单只是显示内容?如果是这样的话,里面的锚定标签听起来像是连接到手风琴的点击事件上的

我注意到有一个选项:“AllowClickWhenExanded”似乎可以防止幻灯片在单击时隐藏:

if(item.hasClass(options.activeClass)) {
     if(options.allowClickWhenExpanded) {
        return;
     } else if(options.collapsible) {
            slider.slideUp(options.animSpeed, function(){
            hideSlide(slider);
            item.removeClass(options.activeClass);
        });
     }
}

因此,请尝试在函数顶部(或初始化手风琴时)将其启用为“true”。

如果希望根据“当前页面”自动展开导航菜单,可以使用jQuery:

    if ($('.nav').length > 0)
    {
        var currentUrl = window.location.pathname;
        var navLink = $('.nav').find("a[href='/" + currentUrl + "']"); // find current page in navigation

        // find parent
        var parentLink = navLink.parentsUntil('.has-drop').find('.opener');

        // trigger click on accordion, effectively expanding it (assuming menu always starts collapsed)
        parentLink.trigger('click');
    }
    if ($('.nav').length > 0)
    {
        var currentUrl = window.location.pathname;
        var navLink = $('.nav').find("a[href='/" + currentUrl + "']"); // find current page in navigation

        // find parent
        var parentLink = navLink.parentsUntil('.has-drop').find('.opener');

        // trigger click on accordion, effectively expanding it (assuming menu always starts collapsed)
        parentLink.trigger('click');
    }