首页 > 解决方案 > 单击导航栏外部时如何关闭导航栏

问题描述

如何编辑我的代码,以便在单击导航栏外部时关闭导航栏,但在单击导航栏内部的内容时保持打开状态?

$(document).ready(function() {
  $('.nav-btn').on('click', function() {
  $('.nav-btn').removeClass('active');
    $(this).parent().find('.sub-menu').slideToggle();
    $(this).toggleClass('active');
  });
});

标签: javascripthtmlcsstwitter-bootstrapbootstrap-5

解决方案


$(document).ready(function () {
    $('.nav-btn').on('click', function (e) {
        
        // Stop Document to be clicked when clicked in nav.
        e.stopPropagation()

        $('.nav-btn').removeClass('active');
        var subMenu = $(this).parent().find('.sub-menu')
        if (!$(".sub-menu").is(":visible")) {
            $(this).parent().find('.sub-menu').slideToggle();
        }
        $(this).toggleClass('active');
    });

    // Toggle Sub Menu and remove active when Any vacant place is clicked
    $(this).on('click', function (event) {
        $('.nav-btn').removeClass('active');
        $('.nav-btn').parent().find('.sub-menu').slideToggle();
    });

    // Prevent View close when Sub Items is clicked
    $('.sub-menu').on('click', function (e) {
        e.stopPropagation()
    })
});

嗨,您只需要在单击导航项时阻止文档单击,并按照上面的代码处理一些额外的事情。

您也可以在此处查看 Plunker 示例


推荐阅读