jquery - 无法关闭移动设备上的下拉菜单

标签 jquery css nav

我希望在您单击下拉菜单中的元素时关闭菜单。此时,只有当您单击菜单按钮时,菜单才会关闭。

网站链接>>> http://www.glassmania.pl/PROA5/index.html

$(document).ready(function() {

    $.fn.menumaker = function(options) {

    var cssmenu = $(this), settings = $.extend({
        title: "Menu",
        format: "dropdown",
        sticky: false
      }, options);

      return this.each(function() {

        cssmenu.prepend('<div id="menu-button"><span></span><span></span><span></span>' + settings.title + '</div>');
        $(this).find("#menu-button").on('click', function(){
          $(this).toggleClass('menu-opened');
          var mainmenu = $(this).next('ul');
          if (mainmenu.hasClass('open')) { 
            mainmenu.slideUp().removeClass('open');
          }
          else {
            mainmenu.slideDown().addClass('open');
            if (settings.format === "dropdown") {
              mainmenu.find('ul').slideDown();
            }
          }
        });

        cssmenu.find('li ul').parent().addClass('has-sub');

        multiTg = function() {
          cssmenu.find(".has-sub").prepend('<span class="submenu-button"></span>');
          cssmenu.find('.submenu-button').on('click', function() {
            $(this).toggleClass('submenu-opened');
            if ($(this).siblings('ul').hasClass('open')) {
              $(this).siblings('ul').removeClass('open').slideUp();
            }
            else {
              $(this).siblings('ul').addClass('open').slideDown();
            }
          });
        };

        if (settings.format === 'multitoggle') multiTg();
        else cssmenu.addClass('dropdown');


      });
    };

    $(".navy").menumaker({
        title: "Navigation",
        format: "multitoggle"
    });


        $('#menu-button').click(function(){
        $(this).toggleClass('open');
    });     


});

最佳答案

没有工作示例很难提供帮助,但我会尽力提供帮助。

我想这就是你需要的:

$('.page-scroll').click(function(){
    $(this).parents('ul').removeClass('open');
});

page-scroll 类是您的菜单项,当用户点击它时,我们会从父 ul 元素中删除 open 类。

关于jquery - 无法关闭移动设备上的下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57345380/

相关文章:

javascript - HTML 更改图像与过渡?

html - 如何将复选框移动到表格单元格的中心

jQuery - 为什么上下滑动有震动而不是平滑?

javascript - 如何使用 bootstrap 让点击的 nav-pill 保持事件状态?

javascript - jQuery 对象和元素

javascript - 在 Bootstrap 中是否可以隐藏元素并用 Accordion 替换它们?

jquery - 页面顶部的子菜单淡入和末尾的淡出

jquery - 如何防止背景向右滑动(使用 jQuery mmenu)

html - CSS:阻止第二个 child (段落)扩大 parent 的宽度

css - 为什么我的导航元素不会转到中心或改变样式?