javascript - 单击下拉菜单显示叠加层

标签 javascript jquery css twitter-bootstrap drop-down-menu

我有一个下拉菜单,点击它需要触发一个覆盖层以将焦点放在下拉菜单上。 我有 2 个下拉菜单,因此我不能使用普通的 toggleClass(),所以我找到了一个解决方案,我做了一个 if 条件来查找覆盖是否已经显示

一切正常,但我有一个问题,如果用户双击 li.dropdown,这个解决方案就不再有效了:(

如果用户双击 li.dropdown,我如何隐藏叠加层?

这是我的代码笔> https://codepen.io/mp1985/pen/KrBOdB

$('li.dropdown').click(function() {
    if (!$('.full-overlayer').hasClass('show')){
        $(".full-overlayer").toggleClass("show");
    }
});


$('.full-overlayer, .dropdown-menu a').click(function() {
    $('.full-overlayer').removeClass('show');
});

我不确定这是否是完成此任务的最佳解决方案。

有什么建议或建议吗?

最佳答案

也许我找到了一个可行的解决方案。 我添加了另一个 if 条件来检查它是否具有“打开”类

  if ($(this).hasClass('open')) {
    $(".full-overlayer").removeClass("show");
  }

我现在正在测试,但它似乎可行,或者至少我希望如此

这里是代码笔,如果有人需要 future > https://codepen.io/mp1985/pen/kXjOAN

关于javascript - 单击下拉菜单显示叠加层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38698464/

相关文章:

html - 如何控制 div 的显示方式而不考虑其内容?

css - CSS 样式表中不允许使用任何字符吗?

javascript - 数组 - 查找序列中缺失的数字

javascript - 当用户快速键入时焦点会跳过

javascript - 如何在 setTimeout 内停止 Javascript 函数调用?

javascript - 当输入长字符串时,如何在输入中保留像 justify 这样的文本

javascript - 干扰 .innerHTML 输出触发器

html - 两个固定元素上的 z-index 不起作用

javascript - 在 Angular js 应用程序中实现甘特图的最有效方法是什么?

javascript - 如何在鼠标单击位置打开弹出窗口