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

使用vanilla javascript在<li>上关闭下拉菜单单击

,可以通过以下步骤实现:

  1. 首先,为<li>元素添加一个点击事件监听器。
  2. 在事件处理程序中,获取下拉菜单的引用。
  3. 检查下拉菜单的当前状态,如果是打开的,则关闭它;如果是关闭的,则不执行任何操作。
  4. 为了关闭下拉菜单,可以通过修改下拉菜单的样式属性来隐藏它,比如设置display属性为"none"。
  5. 如果需要在点击<li>元素时同时关闭其他已打开的下拉菜单,可以在事件处理程序中添加逻辑来关闭其他下拉菜单。

以下是一个示例代码:

代码语言:txt
复制
// 获取<li>元素
var listItem = document.querySelector("li");

// 添加点击事件监听器
listItem.addEventListener("click", function() {
  // 获取下拉菜单的引用
  var dropdownMenu = this.querySelector(".dropdown-menu");

  // 检查下拉菜单的当前状态
  if (dropdownMenu.style.display === "block") {
    // 关闭下拉菜单
    dropdownMenu.style.display = "none";
  } else {
    // 打开下拉菜单
    dropdownMenu.style.display = "block";
  }

  // 关闭其他已打开的下拉菜单
  var allDropdownMenus = document.querySelectorAll(".dropdown-menu");
  allDropdownMenus.forEach(function(menu) {
    if (menu !== dropdownMenu) {
      menu.style.display = "none";
    }
  });
});

这段代码会在点击<li>元素时切换下拉菜单的显示状态,如果下拉菜单是打开的,则关闭它;如果下拉菜单是关闭的,则打开它。同时,它还会关闭其他已打开的下拉菜单,以确保只有一个下拉菜单是打开的。

请注意,这只是一个示例代码,具体实现方式可能会根据具体的HTML结构和样式而有所不同。此外,如果需要在其他地方使用类似的功能,可以根据具体情况进行修改和调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Jump Start Bootstrap 第4章

一章,导航栏只包含一个简单的链接列表。本节中,我们将使用一些Bootstrap的JavaScript插件帮助扩展我们网站现有组件的功能。...现在,我们有了一个简单的下拉菜单单击链接时显示菜单。我们可以浏览器中查看它,如图所示。 ? 让我们结合使用下拉式插件和我们在前一章中创建的标签和按钮菜单。...在这里,请求是打开和关闭下拉菜单。 让我展示一个如何使用这些事件的例子。我已经写了下面的JQuery代码片段去监听所有的下拉插件状态,并打印每个事件触发时的状态。 <!...Bootstrap通过类”close”将按钮放置警告消息的右上角。关闭按钮的解除动作靠data-dismiss属性来触发,由Bootstrap使用JavaScript实现。...Bootstrap模式对话框有一个选项,当单击该句柄时,将该链接加载到它的modal-body元素中。这个特性默认情况下是关闭的。

28.3K40
  • Selenium Python使用技巧(二)

    首先,我们找到菜单项,然后在所需的菜单项执行单击操作。 在下面的示例中,导航到主页的“Automation”选项卡。第一个任务是Menu中找到某个元素 。...#driver.close() 处理下拉菜单 有一个需求,必须从网页下拉菜单中选择一个特定的选项。...像下拉菜单处理一样,我们使用find_element_by_xpath()方法找到所需的复选框,一旦找到该复选框,就会执行单击操作。 我们将使用Selenium自动化测试,并且选中的复选框。...Selenium执行测试自动化时,可以使用CSS定位器来定位网页的元素。...目的是使用find_elements_by_css_selector()https://***.com/找到“登录”按钮并执行单击操作。与登录相关的代码如下。代码检查工具快照还提供了所需的信息。

    6.4K30

    JavaScript入门

    id只能使用一次 层级选择器使用两个标签类似于标签选择器的权重。...import(提权功能,慎用) 3.ps软件前端使用方法 1看颜色 单击色块工具---目标单击----复制粘贴颜色值 用十六进制的颜色值,复制过去记得前面加一个#号 2看文字样式 T 单击目标文字...1995年,那个年代,没有任何一个脚本语言是运行在浏览器端,当时为了把表单验证(当时是服务器端完成的)浏览器端完成所以开始研发js JavaScript 开始叫livesript,为了推广改名...设置按钮绑定单击事件:获取左侧用户输入的数据,显示到右侧; 下拉菜单选中不同的选项,更换不同的风格(css) // 按钮 var oSetcard = document.getElementById...设置按钮绑定单击事件:获取左侧用户输入的数据,显示到右侧; 下拉菜单选中不同的选项,更换不同的风格(css) // 按钮 var oSetcard = document.getElementById

    3.3K20

    【Java 进阶篇】深入了解 Bootstrap 插件

    Bootstrap 的主要优势包括: 响应式设计:Bootstrap 可以轻松创建适应不同设备和屏幕尺寸的网页,确保用户各种设备都能够良好地浏览网站。...在前面的示例中,我们使用了 data-toggle 和其他属性来定义插件的行为,但这些行为通常需要 JavaScript 的支持。...确保项目中包含 Bootstrap 的 JavaScript 文件,以便插件正常运行。...总结 本博客中,我们深入了解了 Bootstrap 插件,涵盖了轮播、模态框、下拉菜单、标签页和表单验证等常见插件。我们了解了它们的基本结构以及如何自定义它们以满足项目需求。...此外,我们还提到了引入 Bootstrap 的 JavaScript 文件以支持插件的交互功能。 使用 Bootstrap 插件可以显著简化前端开发,加快项目的进展,同时确保用户获得出色的用户体验。

    24630

    BootStrap应用开发学习入门1

    注意事项: .navbar-btn 可被使用在 和 元素, 不要在 .navbar-nav 内的 元素使用 .navbar-btn,因为它不是标准的 button class...查看 Bootstrap 当前支持的 jQuery 版本 通过 data 属性 API 就能使用所有的 Bootstrap 插件,无需写一行 JavaScript 代码 (首选方式),如果需要关闭请采用下列方式...使用方法: 通过 data 属性:控制器元素(比如按钮或者链接)设置属性 data-toggle="modal" 同时设置 data-target="#identifier" 或 href="#identifier...> #如果您需要保持链接完整(浏览器不启用 JavaScript 时有用),请使用 data-target 属性代替 href="#": ...:通过 JavaScript 调用下拉菜单切换,请使用下面的方法: $(function() { $(".dropdown-toggle").dropdown('toggle'); }); 4

    44.8K21

    BootStrap应用开发学习入门1

    答:字体图标是 Web 项目中使用的图标字体,可以通过基于项目的 Bootstrap 来免费使用这些图标。...注意事项: .navbar-btn 可被使用在 和 元素, 不要在 .navbar-nav 内的 元素使用 .navbar-btn,因为它不是标准的 button class...查看 Bootstrap 当前支持的 jQuery 版本 通过 data 属性 API 就能使用所有的 Bootstrap 插件,无需写一行 JavaScript 代码 (首选方式),如果需要关闭请采用下列方式...使用方法: 通过 data 属性:控制器元素(比如按钮或者链接)设置属性 data-toggle="modal" 同时设置 data-target="#identifier" 或 href="#identifier...:通过 JavaScript 调用下拉菜单切换,请使用下面的方法: $(function() { $(".dropdown-toggle").dropdown('toggle'); }); 4

    44.3K30

    如何制作自己的原生 JavaScript 路由

    但实际,这些库和框架仍然使用 vanilla JavaScript。那么该怎么实现呢? 我希望这个“JavaScript 路由教程”能够帮你了解如何用原生 JS 写出自己的路由。...最重要的是,使用 vanilla JS router 可以减少你对框架的依赖。 只要你了解实现它所涉及的所有部分,就可以相对容易的原生 JavaScript 中创建自己的路由。...你可以选择将路由存储 routes[] 数组中。 必须用 JavaScript 正则表达式(RegEx)才能解析 URL。...JavaScript 的 History API 我看过很多没有提到 JavaScript History API 的 vanilla JS router 教程。...结果:现在,每次我们单击按钮时,URL 实际都会在浏览器的地址栏中更改。内容框也会更新。 ? 我们的原生 JS 路由开始运行了。请注意,每次单击按钮时,history.pushState 被触发。

    3.9K20

    使用 HTML、CSS 和 JavaScript 创建下拉菜单

    今天,我们将,使用HTML、CSS和JavaScript创建一个完全响应式的下拉菜单。我们的目标是展示一个时尚、多功能的下拉菜单,能够不同的屏幕尺寸下无缝适配,提升用户体验,而无需繁琐的教程。...概述:在这个项目展示中,我们将深入介绍如何创建一个不仅外观吸引人,而且各种设备都能正常工作的下拉菜单。...主要亮点:HTML结构:我们将使用HTML为我们的项目打下基础,构建导航栏和下拉菜单组件的结构。CSS样式:通过CSS,我们将为下拉菜单添加样式,确保它在任何屏幕都看起来精美、专业。...JavaScript功能:利用JavaScript,我们将为下拉菜单注入交互性,使用户能够轻松浏览我们的网站。...让我们开始吧:从HTML的简单开端到CSS和JavaScript的魔法,让我们展示菜单的演变过程。下拉菜单 HTML 代码:<!

    51010

    巧用CSS3 :target 伪类制作Dropdown下拉菜单(无JS)

    先上效果图 正如标题所说,本文是教你如何巧用CSS3 :target 伪类制作Dropdown下拉菜单,原生HTML+CSS,无JavaScript。为了吸引各位往下看,先上实际例子,再进行剖析。...> 大体上面的HTML代码可以分为两部分,一部分是一个出发下拉动作的入口(我习惯称为“开关”)——通常是一个button...(实例是将a标签替换为一个button的功能);一部分就是触发动作的下拉菜单显示了。...当你触发下拉菜单后,有时候需要做关闭(返回原状)的动作,而从具体情况(比如说如本实例触发菜单后菜单将原来的开关都掩盖了)或者用户体验考虑,最好是除菜单区域外的整个屏幕都随便盲点就能关闭菜单。...这个a标签就是实现在打开开关后产生一个透明的遮罩层覆盖到屏幕

    3.9K80

    深入理解bootstrap

    ,.glyphicon和.glyphicon-* 2.新版本使用了CSS3中的@font-face特性 B.下拉菜单 C.按钮组 1.只需要在多个按扭外部使用一个窗口元素(比如div),然后容器元素应用...输入框前后显示的个性元素可以使用.input-group-addon 2.避免select元素使用addon功能,不要将.form-group和.input-group混用 F.导航 1.使用.nav...3..alert样式应用一个.alert-dismissable样式即可实现一个可关闭的警告框 4.警告框也有多种颜色样式 5.使用.alert-link样式高亮警告框中的链接 P.进度条 1.样式...被单击的链接或者按扭需要应用data-toggle="dropdown" 4.js用法:$('#id').dropdown();,也包含事件订阅等功能,与modal类似 D.滚动侦测 1.滚动侦测(...属性 设置菜单链接容器,设置id或样式怀data-target一致 菜单容器内,必须有.nav样式的元素,并且在其内部有li元素,li内鈊的a元素才是可以侦测高亮的菜单链接,即符合.nav li >

    3.4K60

    ASP.NET MVC使用Bootstrap系列(4)——使用JavaScript插件

    Data属性 VS 编程API Bootstrap提供了完全通过HTML标记的方式来使用插件,这意味着,你可以不写任何JavaScript代码,事实这也是Bootstrap推荐的使用方式。...举个栗子,若要使Alert组件支持关闭功能,你可以通过添加data-dismiss="alert"属性到按钮(Botton)或者链接(A)元素,如下代码所示: <div class="alert alert-danger...(dropdown.js) <em>使用</em>dropdown插件(增强交互性),你可以将<em>下拉菜单</em>添加到绝大多数的Bootstrap组件<em>上</em>,比如navbar、tabs等。...<em>上</em>添加data属性:data-dismiss="modal"可以实现对模态框的关闭,当然你也可以使用编程方式API来完成: <button type="button" class="btn btn-primary...小结 在这篇博客中介绍了常见的Bootstrap插件,通过<em>使用</em>数据属性和编程方式的API来<em>使用</em>这些插件,更多插件访问:http://v3.bootcss.com/<em>javascript</em>/ 获取。

    5.2K60

    Web APIs第二天

    事件是在编程时系统内发生的动作或者发生的事情, 比如用户在网页单击一个按钮 事件是在编程时系统内发生的动作或者发生的事情, 比如点击按钮 click 2. 什么是事件监听?...addEventListener注册事件 DOM L3: DOM3级事件模块DOM2级事件的基础重新定义了这些事件,也添加了一些新事件类型 2....小米搜索框案例 ①开始下拉菜单要进行隐藏 ②表单获得焦点 focus,则显示下拉菜单,并且文本框变色(添加类) ③表单失去焦点,反向操作 //需求:当表单得到焦点,显示下拉菜单,失去焦点隐藏下来菜单 <...高阶函数 高阶函数可以被简单理解为函数的高级应用,JavaScript 中函数可以被当成【值】来对待,基于这个特性实现函数的高 级应用 【值】就是 JavaScript 中的数据,如数值、字符串、布尔、...回调函数: 把函数当做另外一个函数的参数传递,这个函数就叫回调函数 回调函数本质还是函数,只不过把它当成参数使用 使用匿名函数做为回调函数比较常见 4. this环境对象 环境对象指的是函数内部特殊的变量

    1.1K60

    CSS 下拉菜单与 focus

    hover 算是比较熟悉的了, PC 鼠标悬停于此时 :hover 伪类生效,比如 链接 的样式正是采用 :hover 实现鼠标经过时反馈,以提示用户这是可点击的。...移动端上稍微有些不同,毕竟所有控制——无论单击、长按抑或划动——都由接触开始,也没有鼠标的「悬停」逻辑,为了方便判定,移动端上若想激活 :hover 也是单击(触摸)。...导航栏之所以不直接显示而是放进下拉菜单,也是为了移动端等小尺寸设备中显示得优雅一点,因此这个单击判定其实是优势。...先说决定如何被聚焦,这里分为负值(一般是 -1)与非负值,若为负值则该元素 不可以被键盘 Tab 聚焦、但可以被 JavaScript 或者鼠标单击聚焦,一般希望被 JavaScript 接管的设为此值...这个问题很迷, iOS Safari 100% 复现而在 iOS Chrome 完全无法复现。

    5.5K20

    前台开发从头说起:谈谈CSS选择符

    菜单2-3 这个结构是我《来自微软的纯css下拉菜单》一文中用到的下拉菜单结构。...第二、css选择符掌握得不够,不善于借助文档结构层次的细微区别,用不同的组合选择符来区别相似但其实不同的元素。例如上面的下拉菜单结构,有的人就非要用“menu”和“submenu”来区别。...我一篇博文发了以后,有位朋友评论说我没做过前台开发。因为没有class和id,就不能实现css和javascript的分离。...实际,只要是长期深入学习css和javascript的朋友应该都清楚:结构有差异的情况下,用css选择符就能精确定位某个元素;结构完全相同的情况下,借助javascript和DOM,同样可以精确定位某个元素...仍然以上面的下拉菜单列表为例。首先使用 ul a 对父级菜单的链接应用样式,然后用ul ul a就可以精确定位到次级菜单的链接,应用新的样式,对ul a的定义进行覆盖。

    1K70

    实现Bootstrap导航鼠标悬停下拉菜单及下拉主菜单可点击效果

    Bootstrap是一个非常不错的前端框架,但是实际的使用过程中还需要根据实际的需要再微调整,比如我们默认使用Bootstrap框架下拉菜单的时候主导航是无法点击打开页面的,以及下拉展开需要单击主菜单...,如果我们需要实现主菜单可以点击打开,而且下拉菜单实现悬停下拉的效果则需要进行调整JS脚本。...第一、实现悬停下拉菜单效果 1、修改bootstrap.js文件 2、添加脚本 $(document).ready(function(){ dropdownOpen(); }); function dropdownOpen...() { var $dropdownLi = $('li.dropdown'); $dropdownLi.mouseover(function() { $(this).addClass('open');...本文出处:老蒋部落 » 实现Bootstrap导航鼠标悬停下拉菜单及下拉主菜单可点击效果 | 欢迎分享

    3.8K60
    领券