Javascript 如果其中一个子菜单项处于活动状态,则展开下拉菜单

Javascript 如果其中一个子菜单项处于活动状态,则展开下拉菜单,javascript,jquery,html,Javascript,Jquery,Html,我有一个下拉菜单,可通过单击展开。默认情况下,菜单是折叠的。如果其中一个子菜单页处于活动状态,我希望菜单显示为展开。我希望这是清楚的。这是我的密码 HTML 因此,如果用户使用的是carbo水合物.php、proteins.php或fats.php,我希望菜单可以扩展。但是我不知道怎么做。有人能帮忙吗?例如,当一个页面处于活动状态时,您需要为其链接提供一个附加类 然后,您可以使用jQuery在菜单中循环,并在任何菜单项具有该类时展开它 $('.dropdown li').each(functi

我有一个下拉菜单,可通过单击展开。默认情况下,菜单是折叠的。如果其中一个子菜单页处于活动状态,我希望菜单显示为展开。我希望这是清楚的。这是我的密码

HTML


因此,如果用户使用的是
carbo水合物.php
proteins.php
fats.php
,我希望菜单可以扩展。但是我不知道怎么做。有人能帮忙吗?

例如,当一个页面处于活动状态时,您需要为其链接提供一个附加类

  • 然后,您可以使用jQuery在菜单中循环,并在任何菜单项具有该类时展开它

    $('.dropdown li').each(function() {
        if ($(this).hasClass('current_page')) {
               $(this).closest('.sub_navigation').slideDown();          
        }            
    });
    

    演示:

    感谢您的回复。然而,无论我在哪一页,菜单似乎总是被展开的。如果这个类中有一个列表项,它总是被展开的。如果你移除它,你会发现它不会膨胀。您需要使用PHP(或者您正在使用的语言)添加这个类。我知道
    substr($\u SERVER[“SCRIPT\u NAME”]、strrpos($\u SERVER[“SCRIPT\u NAME”]、“/”+1)
    会给我当前的相对url,但我不知道如何通过下拉菜单链接循环检查href是否与当前url匹配如果你知道相对url(与链接href中的值完全匹配),你可以使用一个简单的if语句<代码>类别=”。可能也会有帮助。另外,您也可以使用jQuery实现这一点。我正在寻找一种更通用的方法来实现这一点,而不是硬编码特定的url。我现在已经用jQuery完成了,并决定不使用PHP。
    $(document).ready(function() {
            $('.dropdown').click(function() {
                            // When the event is triggered, grab the current element 'this' and
                            // find it's children '.sub_navigation' and display/hide them
                $(this).find('.sub_navigation').slideToggle(); 
            });
    
            $(".disablelink").click(function(e) {
                e.preventDefault();
            });
    
        });
    
    $('.dropdown li').each(function() {
        if ($(this).hasClass('current_page')) {
               $(this).closest('.sub_navigation').slideDown();          
        }            
    });