【问题标题】:How can I make menu hidden on menu item click?如何在菜单项单击时隐藏菜单?
【发布时间】:2014-02-26 14:31:36
【问题描述】:

我对 jQuery 不太熟悉,所以无法实现我想要的相当简单的效果。

Live Test Site

所以,我为我的网站创建了一个响应式菜单。如果您调整窗口大小,您将能够看到移动版本。这很好用,除了一件事:

我的菜单中有锚链接,这意味着网站不会在点击时加载新页面,而是向下滚动到锚点。我的问题是,当单击这些菜单项之一时,我不知道如何使菜单自行关闭。

目前,这是允许我使用当前菜单功能的脚本(fa-bars 是汉堡图标,.primary-mobile-nav 是移动 wordpress 导航菜单:

jQuery(document).ready(function($) {
        var pull        = $('.fa-bars');  
            menu        = $('.primary-mobile-nav');  
            menuHeight  = menu.height();  

        $(pull).on('click', function(e) {  
            e.preventDefault();  
            menu.slideToggle();  
        });
})
jQuery(window).resize(function(){  
    var w = $(window).width();  
    if(w > 320 && menu.is(':hidden')) {  
        menu.removeAttr('style');  
    }  
});

我想总结一下,我的问题是:如何添加到脚本中,以便当我单击任何菜单项时菜单再次隐藏?

编辑

所以我实际上设法通过添加另一个我称为“pullback”的变量并将其分配给“menu-item a”来解决这个问题,然后我只是这样调用函数:

$(pullback).on('click', function(e) {  
    e.preventDefault();  
    menu.slideToggle();  
});

我会看看我在这里得到的其他答案,看看这些解决方案是否更好:)

【问题讨论】:

    标签: jquery wordpress navigation


    【解决方案1】:
    //When we click on a menu item
    $('#menu-mobile-navigation li').click(function(){
       //Hide the menu 
       $('.primary-mobile-nav').hide();
    
    });
    

    希望对你有帮助

    【讨论】:

    • 这实际上做到了我的要求,但它没有拉动画。不过,我确实找到了一个解决方案,我将用它来编辑我的问题。
    • @michaelw90 您可以将 .hide() 替换为 .slideUp()
    【解决方案2】:

    试试这个 jQuery sn-p out。

    $("#menu-mobile-navigation a").each(function(){
      $(this).click(function(){
        menu.slideToggle();
      });
    });
    

    祝你好运。

    【讨论】:

    • 谢谢,我正在将我的代码更改为这个。似乎比我自己居住的那个更干净;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 2020-04-03
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    相关资源
    最近更新 更多