javascript - Nav with JS(双开)

标签 javascript html css

我的 JS 代码有问题,此代码使用 megamenu 激活一个 div,但我可以同时打开 2 个 megamenu,我需要当我已经单击当前 megamenu 时消失,因为第二个是事件的。你有想法吗?

$(function() {

  var menuVisible = false;

  $('.contentLink').click(function() {

        var office = $(this).attr('data-office');

        if (menuVisible) {
            $('#_' + office).hide();
            $(this).removeClass('on');
            menuVisible = false;
            return;
        }
        else
        {
            $('#_' + office).show();
            $(this).addClass('on');
            menuVisible = true;
        }

    });

});

<nav>
    <ul class="menu-links">
        <li><a data-office="events" class="contentLink">Events</a>
            <div class="megamenu center" id="_events">
                My mega menu events
            </div>
        </li>
        <li><a data-office="articles" class="contentLink">Articles</a>
            <div class="megamenu center" id="_articles">
                My mega menu articles
            </div>
        </li>
    </ul>
</nav>

最佳答案

是的,在您的 click() 函数中添加这一行以隐藏之前的所有 megamenu:

$('.megamenu').hide();

我已经编辑了您的代码以简化它:

$(function() {
  $('.contentLink').click(function() {
        $('.megamenu').hide();
        menu = $(this).next();
        if(menu.is(':visible')){
           menu.hide();  
        }else{
           menu.show();       
        }        
    });
});

Live example

关于javascript - Nav with JS(双开),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36606026/

相关文章:

javascript - JS 和 Vue.js 中的动态导入

javascript - 使用 JavaScript 更新 gridview 的下拉列表?

javascript - 背景颜色改变它的高度onload

css - 苹果操作系统 X : Scrollbar is sometimes white-transparent and sometimes black-transparent

html - 文本对齐 - CSS 还是 HTML?

javascript - 防止 favicon.ico 发出第二个请求 - Node.js

javascript - 在 D3js 中的 x 轴上使用自定义刻度标签

html - 在 grid-template-columns 中使用 repeat(auto-fit, minmax()) 将一列设置为等宽

html - 当引入第二个 flex 元素时, flex 元素不会占用容器中的可用空间

javascript - 聊天 发送消息 左接收 右