首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在单击任何其他父菜单的子菜单或相同的子菜单时关闭多个子菜单

在前端开发中,可以通过以下步骤来实现在单击任何其他父菜单的子菜单或相同的子菜单时关闭多个子菜单:

  1. 首先,为每个父菜单添加一个点击事件监听器,以便在点击时触发相应的操作。
  2. 当点击某个父菜单时,可以使用DOM操作方法(如querySelector、classList等)获取所有子菜单的元素,可以根据CSS选择器进行选择,或者通过遍历父菜单的子元素来获取子菜单。
  3. 对于获取到的子菜单元素,可以使用classList方法来添加或删除指定的CSS类名,用于控制子菜单的显示或隐藏状态。
  4. 在点击事件监听器中,可以先判断当前点击的父菜单是否已经处于展开状态,如果是,则将其关闭。可以通过检查父菜单元素的classList中是否包含表示展开状态的CSS类名来进行判断。
  5. 在关闭当前父菜单之后,可以使用循环或迭代的方式遍历所有其他父菜单,将它们的子菜单隐藏起来。可以通过遍历父菜单元素的兄弟节点,检查它们的子菜单元素是否处于展开状态,并进行关闭操作。
  6. 另外,为了提高用户体验,可以在操作过程中添加一些动画效果,使菜单的展开和关闭更加平滑。

以下是一些示例代码,用于演示如何实现上述功能:

HTML部分:

代码语言:txt
复制
<div class="parent-menu">
  <button class="parent-menu__button">父菜单</button>
  <ul class="child-menu">
    <li>子菜单1</li>
    <li>子菜单2</li>
    <li>子菜单3</li>
  </ul>
</div>
<!-- 其他类似结构的父菜单和子菜单 -->

CSS部分:

代码语言:txt
复制
.child-menu {
  display: none;
}

JavaScript部分:

代码语言:txt
复制
// 获取所有父菜单按钮元素
const parentMenuButtons = document.querySelectorAll('.parent-menu__button');

// 给每个父菜单按钮添加点击事件监听器
parentMenuButtons.forEach(button => {
  button.addEventListener('click', () => {
    const currentParentMenu = button.parentNode;
    const currentChildMenu = currentParentMenu.querySelector('.child-menu');

    if (currentParentMenu.classList.contains('open')) {
      // 关闭当前父菜单
      currentParentMenu.classList.remove('open');
      currentChildMenu.style.display = 'none';
    } else {
      // 关闭其他父菜单并展开当前父菜单
      parentMenuButtons.forEach(otherButton => {
        const otherParentMenu = otherButton.parentNode;
        if (otherParentMenu !== currentParentMenu) {
          otherParentMenu.classList.remove('open');
          otherParentMenu.querySelector('.child-menu').style.display = 'none';
        }
      });
      currentParentMenu.classList.add('open');
      currentChildMenu.style.display = 'block';
    }
  });
});

以上代码中,我们通过给父菜单按钮添加一个CSS类名来表示它的展开状态。当点击父菜单按钮时,通过判断该按钮所在的父菜单元素是否含有该类名来判断它是否已经展开,从而实现展开和关闭的效果。

请注意,上述示例代码只是一种实现方式,具体实现可能因项目需求和技术栈的不同而有所差异。在实际开发中,可以根据具体情况进行调整和优化。

相关搜索:单击子菜单时的Cypress关闭菜单单击父菜单时仅打开一个子菜单如何在单击父菜单时使用jQuery切换子菜单如何在点击时关闭其他子菜单如何删除单击其他链接时关闭子菜单的类如何在单击菜单以外的其他位置时关闭自定义菜单当用户触摸菜单或其子菜单以外的其他内容时,我如何检测?如何在Bootstrap 4中自动关闭下拉菜单上的子菜单当父菜单项倾斜时,子菜单中的不希望出现的offest?如何强制一个父菜单项的所有子菜单级别在悬停时处于活动状态(mega菜单)防止关闭剑道上下文菜单中的子菜单,直到用户将鼠标悬停在另一个菜单项上或单击外部/其他菜单项是否希望菜单和子菜单在悬停时的行为相同-当前项目的问题当其他menuItems左对齐时,如何使水平菜单中的(Antd)子菜单右对齐?带有aria的子菜单-响应的wordpress上的控件在单击时未关闭当单击另一个父级时隐藏父级的子菜单内容如何在将鼠标移到子菜单时保持父导航元素的悬停状态?当一个菜单项的按钮(第一个菜单项的“表亲”)用Javascript单击而没有jQuery时,关闭另一个菜单项的子菜单将鼠标悬停在父引导程序上时,会显示导航栏中的子菜单下拉菜单我正在从另一个子域加载菜单(使用jquery),我需要其他子域的相对链接-我该怎么做?使用锚定漫游程序(Walker_Nav_Menu)时出错,在子菜单中插入锚定父项的类
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C#学习笔记—— 常用控件说明及其属性、事件

数组中的每个元素表示以此窗体作为父级的多文档界面(MDI)子窗体。 (27)MdiParent属性:用来获取或设置此窗体的当前多文档界面(MDI)父窗体。...值为 true 时,是默认菜单项,值为 false时,不是默认菜单项。菜单的默认菜单项以粗体的形式显示。当用户双击包含默认项的子菜单后,默认项被选定,然后子菜单关闭。...子窗口本身不能再成为父窗口,而且不能移动到它们的父窗口区域之外。除此以外,子窗口的行为与任何其他窗口一样(如可以关闭、最小化和调整大小等)。...一个子窗口在功能上可能与父窗口的其他子窗口不同,例如,一个子窗口可能用于编辑图像,另一个子窗口可能用于编辑文本,第 3 个子窗口可以使用图形来显示数据,但是所有的窗口都属于相同的MDI父窗口。...常用的 MDI 父窗体的事MdiChildActivate,当激活或关闭一个 MDI子窗体时将发生该事件。 3.菜单合并 父窗体和子窗体可以使用不同的菜单,这些菜单会在选择子窗体的时候合并。

9.9K20

最全的windows操作系统快捷键

(加shift反向) F5           刷新 CTRL+F5         强行刷新 目的快捷键 激活程序中的菜单栏 F10 执行菜单上相应的命令 ALT+菜单上带下划线的字母 关闭多文档界面程序中的当...显示所选项目的快捷菜单 SHIFT+ F10 显示“开始”菜单 CTRL+ ESC 显示多文档界面程序的系统 菜单 ALT+连字号(-) 粘贴 CTR L+ V 切换到上次使用的窗口或者 按住 ALT...NUM LOCK+负号(-) 如果当前选择折叠了,要展开或者选择第一个子文件夹右箭头展开当前选择下的所有文件夹 NUM LOCK+* 展开所选的文件夹 NUM LOCK+加号(+) 在左右窗格间切换 F6...三、使用 WINDOWS键 可以使用 Microsoft自然键盘或含有 Windows徽标键的其他任何兼容键盘的以下快捷键。...WINDOWS+ D 撤消最小化所有窗口 SHIFT+ WINDOWS+ M 四、使用“我的电脑”和“Windows资源管理器”的快捷键 目的快捷键 关闭所选文件夹及其所有父 文件夹按住 SHIFT键再单击

2K20
  • 【译】W3C WAI-ARIA最佳实践 -- 表单

    - (可选):当焦点位于未选中的menuitemradio上时,不会关闭菜单,选中聚焦的 menuitemradio,并取消选中同一组中的任何其他已选中的 menuitemradio 元素。...关闭子菜单和任何父菜单。 2. 将焦点移动到 menuitem 中的下一个 menubar. 3....- 当焦点在菜单中一个项目的子菜单时,关闭子菜单并将焦点返回给父级menuitem。 - 焦点在 menubar 栏中的一个项目的子菜单时,执行以下3个操作: 1. 关闭子菜单。 2....+ Escape: 关闭包含焦点的菜单并将焦点返回到元素或上下文,例如打开菜单的菜单按钮或父级menuitem + Tab: 将焦点移动到Tab序列中的下一个元素,并且如果获得焦点的项目不在 menubar...一个子菜单的菜单元素被它的父级 menuitem 包含或拥有。 父级menu的aria-haspopup 设置为 true。

    8.3K30

    一起来学matlab-matlab学习笔记9 高级绘图命令_1 图形对象_根对象,轴对象,用户控制对象,用户菜单对象

    (2)图形窗口(figurewindow):独立于根屏幕的显示图形窗口,是根对象的子对象,而所有其他图形对象都是图形窗口的子孙。所有的绘图函数(如plot和surf等)都会自动建立一个图形窗口。...(3)轴(axis):轴对象在图形窗口中定义一个区域,并确定该区域中子对象的方向,轴是图形窗口的子对象,又是图像、灯光、线、块、表面和文字的父对象。...当MATLAB启动时,根对象会被自动创建,它一直存在到MATLAB关闭为止。与根对象相关的属性是应用于所用MATLAB窗口的默认属性。在根对象下,有多个图像窗口,或只有图像。...在建立子菜单项时,必须指定一级菜单项对应的句柄值。快捷菜单是用鼠标右键单击对象时在屏幕上弹出的菜单。快捷菜单的位置是不固定的,而且总是附加在某个图形对象上。...制作一个带4个子菜单项的顶层菜单项,该下拉菜单分为两个功能区,每个功能区的两个菜单项是相互独立的,因此采用使能属性进行处理;当图形窗坐标轴消隐时,整个坐标分隔控制功能区不可见。

    3.6K40

    【愚公系列】2023年11月 Winform控件专题 Form控件详解

    当使用AutoScaleMode属性时,需要注意以下几点:在窗体中添加控件时,需要设置Anchor属性,以便在窗体大小改变时,控件可以相对于窗体边界或其他控件保持相对位置。...调整控件大小:确保容器控件(如 Form 或 Panel)的 AutoScroll 属性已经设置为 True。...添加子窗体的方式有两种,一种是在代码中创建一个新的子窗体,另一种是在窗体设计器中创建一个子窗体控件。...可以通过设计器界面或者代码来添加菜单和子菜单。3.通过事件处理程序响应菜单或子菜单的点击事件,可以在代码中实现对应的功能。...MDI应用程序:使用Form可以创建MDI父窗体,作为多文档界面应用程序的主窗口。模式窗口:Form可作为模式窗口使用,即在窗体弹出时阻止用户与其它窗体交互。

    2.5K21

    路径复制

    在Windows资源管理器中,右键单击任何文件,文件夹或文件组,然后显示上下文菜单。在其中,您将看到两个新项目。 ?...如果选择了多个文件和/或文件夹,则将它们各自的路径复制到多行上。 路径复制将打开一个子菜单。 ? 路径复制复制子菜单 子菜单包含更多命令。...例如,默认命令名称将仅将文件或文件夹名称(而不是其完整路径)复制到剪贴板。在父文件夹的路径将复制所选项目的父文件夹的完整路径。...对于每个命令,可以单击命令的左侧以为其选择一个图标(1),并选择该命令是出现在主上下文菜单中还是出现在子菜单中(或同时出现在这两个菜单中)(2)。 命令列表(3)右侧的按钮可用于进一步操作命令。...启用此功能后,“路径复制复制”将定期(最多一周一次)检查网络上的新版本。发布新版本时,关闭上下文菜单后将出现一个窗口,显示该新版本的一些发行说明,并提供指向GitHub发行页面的链接。

    3.5K30

    BubbleRob tutorial 遇到的问题

    当子脚本以编程方式访问对象时,将多个对象分组为一个模型也很重要;请记住,在V-REP中,对象/模型可以在任何时候复制,也可以在模拟期间复制。...保证这一点的一种方法是创建一个模型(如上所述),并确保访问模型中的对象的子脚本与模型中包含的对象相关联。最好的方法是将一个子脚本(也可能有第二个子脚本)与模型的基础相关联。...Collection self-collision indicator收集自冲突指示器:当在两个相同的收集之间执行冲突(或最小距离)计算时,V-REP通常会将所有收集项与该收集中的所有其他项进行核对。...Required match values for parent父对象的必需匹配值:该对象可以附加到另一个对象(即成为另一个对象的子对象),但是只有当列出的父对象的必需匹配值之一与它的新父对象的子对象的必需匹配值之一匹配时才可以...Required match values for child子对象的必需匹配值:对象可以有另一个对象附加到它自己(即成为另一个对象的父对象),但只有当它的一个子对象的必需匹配值与它的新子对象的父对象的必需匹配值之一匹配时

    1.7K10

    JavaFX+Jfoenix 学习笔记(四)–MenuBar菜单栏

    ("菜单2"); // 创建多级菜单的父级 Menu menu3 = new Menu("多级菜单"); MenuItem menuItem1 = new MenuItem("子菜单项...menuItem3 = new MenuItem("子菜单项3"); menuItem3.getStyleClass().add("zkh_MenuItem"); // 将子菜单项添加进父级菜单...three-pass-box, #F2F2F2, 1, 0, 0, 0);*/ /*阴影效果*/ } .menu-bar > .container > .menu-button:showing{ /*菜单栏选中并移动到二级菜单时一级选中菜单的样式...菜单最基本的作用就是单击做一些事情这是要用到单击事件:setOnAction(EventHandler value) 这里有个坑,Menu的setOnAction不生效,或者说...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    2.7K20

    CodeWave系列:3.CodeWave 智能开发平台 页面布局及呈现

    弹性布局:在弹性布局模式中,子元素可以在任何方向上排布,也可以弹性伸缩其尺寸,既可以增加尺寸以填满未使用的空间,也可以收缩尺寸以避免溢出父元素。 2.3 组件 每个组件都包含属性、事件和样式。...**下拉菜单:**提供弹出式的下拉菜单项可供选择,通常用于应用导航,通过下拉菜单项可快速浏览应用。 3.2 容器 子页面容器: 每个页面生成的时候均会自带一个子页面容器,用于展示子页面内容。...我们将自由布局组件内的一级子组件称为自由布局内子组件,这些子组件会有一些特殊的属性,如距离和约束,用于确定其与父容器的位置关系。自由布局中的组件可以是任何类型的组件,包括自由布局组件本身。...拖入容器中的组件会成为自由布局组件的子组件,如果子组件内有插槽,可以在插槽内继续拖入其他组件进行布局。...注:只有自由布局组件内的一级子组件才具有自由布局的特性,子组件内的其他组件仍然遵循自身的布局规则。

    35710

    在Excel中自定义上下文菜单(上)

    在Microsoft Office中,上下文菜单提供了一组在应用程序的当前状态或上下文中可用的有限选项。通常,可用的选择是与选定对象(如单元格或列)相关的操作。...Excel中的上下文菜单 在Microsoft Excel中,人们最常用的上下文菜单是单元格上下文菜单,这是在工作表单元格或选定单元格上单击鼠标右键时看到的菜单(如下图1所示)。...然而,也可以自定义许多其他上下文菜单。例如,在行或列标题上单击鼠标右键时显示的行和列上下文菜单。...单击按钮或子菜单中的三个选项之一时,会运行其他四个过程。在本例中,最后四个宏更改单元格中任何文本的大小写。...当打开或激活该工作簿时,这些事件会自动将控件添加到单元格上下文菜单中;当关闭或停用该工作簿时,这些事件会自动删除添加的控件。

    2.8K40

    Windows中的键盘快捷方式大全

    ,或者打开子菜单 向左键 打开左侧的下一个菜单,或者关闭子菜单 Esc 停止或退出当前任务 Windows 徽标键键盘快捷方式 按此键 执行此操作 Windows 徽标键 打开或关闭“开始”菜单 Windows...,或者关闭子菜单 Esc 停止或退出当前任务 Windows 徽标键键盘快捷方式 按此键 执行此操作 Windows 徽标键 + F1 打开 Windows 帮助和支持 Windows 徽标键 显示或隐藏...(如果它处于折叠状态),或者选择第一个子文件夹 向左键 折叠当前选项(如果它处于展开状态),或者选择其父文件夹 End 显示活动窗口的底端 Home 显示活动窗口的顶端 F11 最大化或最小化活动窗口...显示相应的菜单 Alt + 带下划线的字母 执行菜单命令(或其他带下划线的命令) F10 激活活动程序中的菜单栏 右箭头 打开右侧的下一个菜单,或者打开子菜单 左箭头 打开左侧的下一个菜单,或者关闭子菜单...+ 向左键 查看上一个文件夹 Backspace 查看上一个文件夹 右箭头 显示当前部分(如已折叠),或者选择第一个子文件夹 Alt + 向右键 查看下一个文件夹 Alt + 向上键 查看父文件夹 Ctrl

    5.7K21

    【愚公系列】2023年10月 WPF控件专题 Expander控件详解

    一、Expander控件详解WPF中的Expander控件是一个可折叠的控件,可以用来显示或隐藏其子控件。当用户单击Expander控件的标题时,其子控件将会打开或关闭。...Expander控件的属性和事件如下:属性:Header:Expander控件的标题IsExpanded:控制子控件的打开或关闭状态事件:Expanded:当子控件打开时发生Collapsed:当子控件关闭时发生下面是一个...当用户单击控件的标题时,子控件将会打开或关闭,并显示或隐藏StackPanel中的所有按钮。1.属性介绍WPF中Expander控件是一个可展开的区域,通常用于显示或隐藏可选内容。...显示和隐藏子菜单:Expander控件可以用来隐藏和显示具有子菜单的菜单项。当用户单击菜单项时,可以展开子菜单,然后再次点击相同的菜单项可以将其收起。...例如,展开一个选项卡的Expander控件时,可以关闭其他选项卡的Expander控件,以便有更多的空间去显示当前选项卡的内容。窗口内的面板控制:Expander控件可以用来控制窗口中的面板。

    93231

    【机组】单元模块的软件简介和安装

    在主菜单栏上有6个主菜单,它们分别如下: 1、文件(F) 和文件有关的操作,如打开、关闭、打印等文件操作。...1、数据区窗口:该菜单项包括2个子菜单,分别是程序空间窗口和微指令空间窗口,点选程序空间窗口,出现一个程序代码窗口,这个窗口中是指令的二进制代码,点击鼠标右键,选择上下文菜单,使得窗口内容可修改,可直接修改二进制代码...4.8 LCPT软件子窗口描述 LCPT软件总共包括如图所示7个子窗口,分别是:程序调试窗口,源代码编辑窗口,程序结构图子窗口,程序指令空间窗口,微指令空间窗口,历史窗口和信号状态窗口。...当新建或者打开新的汇编源文件时,软件会提示用户必须先关闭已打开的源文件。...单击工具栏上“编译”按钮或菜单“编译”中“编译源文件”选项,若源文件存在语法错误,会出现相应对话框进行告警;源文件语法修改正确后,主界面会切换到“程序结构图”子窗口,如下所示: 5.

    13010

    Jmeter(二) - 从入门到精通 - 创建测试计划(Test Plan)(详解教程)

    要保存树元素,请右键单击元素,然后选择“ 将选择另存为... ”选项。JMeter将保存选定的元素及其下的所有子元素。这样,您可以保存测试树片段和单个元素以供以后使用。 注意:敲黑板,敲脑壳啦!!!...这些仅适用于本地运行的测试;使用客户端-服务器模式时,它们不包括在远程系统上启动的任何线程。 注意:敲黑板,敲脑壳啦!!!仅在调试测试计划时,才应使用此处所述的GUI模式。...关机(Control + ,)-请求线程在任何当前工作结束时停止。不会中断任何活动样本。模态关闭对话框将保持活动状态,直到所有线程停止。 如果关机时间太长。...关闭“关机”对话框,然后选择“运行/停止”,或仅按Control+.。 在CLI模式下运行JMeter时,没有菜单,并且JMeter不会对诸如Control + . 之类的组合键作出反应。。...测试树例子 请求的顺序是 One,Two,Three,Four。 一些控制器影响它的子元件的顺序,你可以在组件参考读到特定的控制器。 其他元素是分等级的。例如,一个断言在测试树中是分等级的。

    10.3K62

    Flutter开发-容器类组件

    ; 而容器类Widget一般只需要接收一个子Widget(child),他们直接或间接继承自(或包含)SingleChildRenderObjectWidget。...布局类Widget是按照一定的排列方式来对其子Widget进行排列; 而容器类Widget一般只是包装其子Widget,对其添加一些修饰(补白或背景色等)、变换(旋转或剪裁等)、或限制(大小等)。...也就是说父限制的minHeight(100.0)仍然是生效的,只不过它不影响最终子元素redBox的大小,但仍然还是占有相应的空间,可以认为此时的父ConstrainedBox是作用于子UnconstrainedBox...DecoratedBox(装饰容器) DecoratedBox可以在其子组件绘制前(或后)绘制一些装饰(Decoration),如背景、边框、渐变等。...如果开发者提供了抽屉菜单,那么当用户手指从屏幕左(或右)侧向里滑动时便可打开抽屉菜单。

    3.6K20

    Windows 7 操作系统

    (6)睡眠:保存信息并关闭计算机,打开计算机时会恢复到睡眠前的工作状态,睡眠时,电脑只是进入一种低耗能状态。...另外,Windows可以将屏幕画面复制到剪贴板,要复制整个屏幕,按PrintScreen;要复制活动窗口,按组合键Alt+PrintScreen  因为剪贴板是在内存里开设的存储空间,所以,当电脑关闭或重启时...桌面有自己的背景图案,可以布局各种图标,桌面底部的条状区域叫任务栏,任务栏上有“开始”按钮、任务按钮盒其他显示信息,如时钟等。 1.桌面上的主要元素  (1)图标。...5)设置屏幕保护程序  屏幕保护程序是指子啊开机状态下载一段时间内没有使用鼠标或键盘操作时,屏幕上出现动画或图案。屏幕保护程序可以起到保护信息安全,延长显示器寿命的作用。...4.设置快捷方式  快捷方式是到计算机或网络上任何可访问的项目(如程序、文件、文件夹、磁盘驱动器、Web页、打印机或者另一台计算机)的连接,将快捷方式放置在桌面文件夹中,使用快捷方式可以快速打开项目。

    42830

    win8快捷键大全分享,非常全

    选择窗口中或桌面上的多个单个项目 Ctrl+A 选择文档或窗口中的所有项目 F3 搜索文件或文件夹 Alt+Enter 显示所选项的属性 Alt+F4 关闭活动项目或者退出活动程序 Alt+空格键 为活动窗口打开快捷方式菜单...Alt+加下划线的字母 执行菜单命令(或其他有下划线的命令) F10 激活活动程序中的菜单栏 向右键 打开右侧的下一个菜单或者打开子菜单 向左键 打开左侧的下一个菜单或者关闭子菜单 F5(或 Ctrl...+向左键 查看上一个文件夹 Backspace 查看上一个文件夹 向右键 显示当前选项(如果它处于折叠状态),或者选择第一个子文件夹 Alt+向右键 查看下一个文件夹 Alt+向上键 查看父文件夹 Ctrl...Ctrl+Shift 并单击某个任务栏按钮 以管理员身份打开程序 按住 Shift 并右键单击某个任务栏按钮 显示该程序的窗口菜单 按住 Shift 并右键单击某个分组的任务栏按钮 显示该组的窗口菜单...(+) 将整个客户端窗口区域的副本放在终端服务器的剪贴板上(提供的功能与在本地计算机上按 PrtScn 相同) Ctrl+Alt+向右键 从远程桌面控件“跳转”到主机程序中的控件(如按钮或文本框)将远程桌面控件嵌入到其他

    3.6K40

    unity3d新手入门必备教程

    选择刚才拷贝进来的文件中的Fbx文件,如    修改其中的Meshes下的Scale Factor和Generate Colliders,如    点击其他Fbx文件或者单击其他区域将弹出如下的对话框...物体层次 Unity使用一个称为父化(Parenting)的概念。任何物体都可以成为另一个物体的父或子。一个子物体可以从它的父物体继承移动和旋转。...当你有一个包含多个组件或子物体层次的物体时,你可以制作一个顶层(或根)物体的预设,并可重用整个物体集。    可以将预设看作是物体结构的蓝图。对于该蓝图来说所有的拷贝都是相同的。...当一物体是另外一些物体的父(Parent)物体时,这个物体的旋转将影响所有的子(Child)物体。你可以在层次视图 (Hierarchy View)中通过拖动任何物体到另一个物体上来创建一个父。...一个游戏物体可以有任意多个子物体,但是只能有一个父物体。子物体也可以是其它物体的父物体。你可以很容易的在层次视图中分辨一个物体是不是一个父物体。

    6.4K10
    领券