【发布时间】:2018-04-02 09:38:39
【问题描述】:
下拉菜单使用 CSS 和 HTML/JS 设计,使用从 JS 添加的名为“is-open”的类。一旦出现在指定的 HTML div 中,它将激活 CSS 以显示子菜单。
但是有一个小问题,即一旦单击下拉菜单就不会消失,除非单击相同的菜单项。 (在 menu-content div 外部单击时,该类不会取消切换)
作为一项基本功能,一旦用户不仅点击菜单,而且点击页面上的任何位置,此菜单都需要消失。
我现在的javascript如下:
$(document).ready(function() {
$(".has-submenu").click(function(e) {
e.stopPropagation();
if($(this).hasClass("is-open")) {
$(this).removeClass("is-open");
} else {
$(".has-submenu").removeClass("is-open");
$(this).addClass("is-open");
}
});
});
这是代码的codepen示例:https://codepen.io/anon/pen/EwMjrz
【问题讨论】:
-
@FerhadOthman 您的解决方案不起作用。当在 div 外部单击时,它允许第一个菜单项(在本例中为“文章”)折叠,但是任何后续菜单项都不会受到影响。见codepen.io/hioioasd90/pen/qPwBEW
-
第 13 行
var element = document.querySelector(".has-submenu.is-open");选择器必须是 class is-open
标签: javascript jquery html css menu