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

在javascript菜单中的foreach切换应仅在我单击的图标中处于活动状态

在JavaScript中,如果你想在点击某个图标时仅让该图标的菜单项处于活动状态,你可以使用事件监听和条件判断来实现。以下是一个简单的示例代码:

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Menu Active State</title>
<style>
  .active {
    color: red; /* 或者其他你想要的活动状态样式 */
  }
</style>
</head>
<body>

<ul id="menu">
  <li><a href="#" data-target="item1">Item 1</a></li>
  <li><a href="#" data-target="item2">Item 2</a></li>
  <li><a href="#" data-target="item3">Item 3</a></li>
</ul>

<script>
  document.addEventListener('DOMContentLoaded', function() {
    const menuItems = document.querySelectorAll('#menu a');

    menuItems.forEach(item => {
      item.addEventListener('click', function(event) {
        event.preventDefault(); // 阻止默认的链接跳转行为

        // 移除所有菜单项的活动状态
        menuItems.forEach(menuItem => {
          menuItem.classList.remove('active');
        });

        // 给当前点击的菜单项添加活动状态
        this.classList.add('active');
      });
    });
  });
</script>

</body>
</html>

基础概念

  1. 事件监听:通过addEventListener方法为元素添加事件处理程序。
  2. 条件判断:在事件处理程序中,通过条件判断来决定是否执行某些操作。
  3. 类操作:通过classList属性来添加或移除元素的类。

优势

  • 简单易实现:代码逻辑简单,易于理解和维护。
  • 灵活性:可以根据需要自定义活动状态的样式和行为。

类型

  • 事件驱动编程:通过事件监听和触发来实现交互效果。

应用场景

  • 导航菜单:在导航菜单中,点击某个菜单项时,仅让该菜单项处于活动状态。
  • 选项卡切换:在选项卡组件中,点击某个选项卡时,仅让该选项卡处于活动状态。

可能遇到的问题及解决方法

  1. 事件冒泡:如果菜单项在嵌套结构中,可能会出现事件冒泡问题。可以通过event.stopPropagation()方法来阻止事件冒泡。
  2. 动态添加元素:如果菜单项是动态添加的,需要在添加元素后重新绑定事件监听器。

参考链接

通过以上代码和解释,你应该能够实现点击图标时仅让该图标的菜单项处于活动状态的功能。

相关搜索:我的导航栏中的切换按钮处于非活动状态在react中仅使列表中单击的项目处于活动状态如何在单击后保持菜单中的项目处于选中状态更改处于活动和非活动状态的底部导航栏中的材质图标在JS中处于活动状态的按钮再次被单击后,如何从按钮中移除活动的类Python代码的"build“函数在webots中处于非活动状态在div之外单击无法关闭iphone中的切换栏菜单在Blazor中的单击事件上切换CSS活动类用于检测链路在react中是否处于活动状态的属性在javascript中的数组对象中的Foreach我无法访问元素在Excel for JavaScript中,onSettingsChanged事件的处理程序是否仍处于中断状态?在Angular 9中,如何在给定时间只允许div中的一个切换处于活动状态?如何在单击我的页脚图标时从状态栏中删除通知选项卡式菜单-如果列表项处于活动状态,则在子菜单旁边的额外`div`中显示页面摘录如果列表项中的锚点处于活动状态,我如何向元素添加类?jQuery在复选框处于活动状态时禁用其他行中的输入单击导航药丸时,Bootstrap中的选项卡式下拉菜单一直处于关闭状态除非手动切换设计模式,否则工作表上容器框架中的表单对象处于非活动状态为什么当Js处于活动状态时,我的表单只能在chrome中工作?如果客户端的状态显示在html中,我如何使其处于打开或关闭状态?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Windows10中的键盘快捷方式

    Windows 徽标键 + Shift + C打开超级按钮菜单Windows 徽标键 + D显示和隐藏桌面Windows 徽标键 + Alt + D显示和隐藏桌面上的日期和时间Windows 徽标键 + E打开文件资源管理器Windows 徽标键 + F打开反馈中心并获取屏幕截图Windows 徽标键 + G打开游戏栏(当游戏处于打开状态时)Windows 徽标键 + H开始听写Windows 徽标键  + I打开“设置”Windows 徽标键 + J 请将焦点设置到可用的 Windows 提示。 当出现 Windows 提示时,请将焦点移到提示上。 再次按下键盘快捷方式,将焦点放在屏幕上 Windows 提示所固定的元素上。Windows 徽标键 + K打开“连接”快速操作Windows 徽标键 + L锁定你的电脑或切换帐户Windows 徽标键 + M最小化所有窗口Windows 徽标键 + O锁定设备方向Windows 徽标键 + P选择演示显示模式Windows 徽标键 + R打开“运行”对话框Windows 徽标键 + S打开“搜索”Windows 徽标键 + T循环浏览任务栏上的应用Windows 徽标键 + U打开“轻松使用设置中心”Windows 徽标键 + V循环浏览通知Windows 徽标键 + Shift + V以相反顺序循环浏览通知Windows 徽标键 + X打开“快速链接”菜单Windows 徽标键  + Y在 Windows Mixed Reality 与桌面之间切换输入Windows 徽标键 + Z以全屏模式显示应用中可用的命令Windows 徽标键 + 句点 (.) 或分号 (;)打开表情符号面板Windows 徽标键 + 逗号 (,)临时速览桌面Windows 徽标键 + Pause 键显示“系统属性”对话框Windows 徽标键 + Ctrl + F搜索电脑(如果已连接到网络)Windows 徽标键 + Shift + M还原桌面上的最小化窗口Windows 徽标键 + 数字打开桌面,然后启动固定到任务栏的应用(位于数字所指明的位置)。如果应用已处于运行状态,则切换至该应用。Windows 徽标键 + Shift + 数字打开桌面,然后启动固定到任务栏的应用新实例(位于数字所指明的位置)Windows 徽标键 + Ctrl + 数字打开桌面,然后切换至固定到任务栏的应用的最后活动窗口(位于数字所指明的位置)Windows 徽标键 + Alt + 数字打开桌面,然后打开固定到任务栏的应用的“跳转列表”(位于数字所指明的位置)Windows 徽标键 + Ctrl + Shift + 数字打开桌面,然后以管理员身份打开位于任务栏上指定位置的应用新实例Windows 徽标键 + Tab打开任务视图Windows 徽标键 向上键最大化窗口Windows 徽标键 向下键删除屏幕上的当前应用并最小化桌面窗口Windows 徽标键 + 向左键最大化屏幕左侧的应用或桌面窗口Windows 徽标键 + 向右键最大化屏幕右侧的应用或桌面窗口Windows 徽标键 + Home最小化活动桌面窗口之外的所有窗口(在第二个笔划时还原所有窗口)Windows 徽标键 + Shift + 向上键将桌面窗口拉伸至屏幕顶部和底部Windows 徽标键 + Shift + 向下键在垂直方向上还原/最小化活动桌面窗口,而宽度保持不变Windows 徽标键 Shift + 向左键或向右键将桌面上的应用或窗口从一台显示器移动至另一台显示器Windows 徽标键+ 空格键切换输入语言和键盘布局Windows 徽标键+ Ctrl + 空格键对之前选择的输入所做的更改Windows 徽标键+ Ctrl + Enter打开讲述人Windows 徽标键+ 加号 (+)打开放大镜Windows 徽标键+ 正斜杠 (/)开始输入法复原流程Windows 徽标键  + Ctrl + V打开肩式分接设备 命令提示符键盘快捷方式

    02

    ntopng网络监控-远程协助/访问

    请求远程协助时的一个常见问题是访问用户计算机。通常,用户计算机位于阻止传入连接的NAT或防火墙后面,对于非技术用户来说,设置端口转发和防火墙规则是一个问题。远程访问可用于用户支持。每当您需要例如在防火墙后访问ntopng而又不想设置VPN时,它都很方便。由于n2n依赖于超级节点的概念,因此ntop代表您设置了一个公共超级节点,以避免您这样做。但是,我们建议您设置私有超级节点并在ntopng首选项中对其进行配置,以便您可以拥有完全私有的远程访问基础结构。 启用远程协助后,您可以通过为人们提供正确的凭据来使他们连接到您的ntopng主机。除非您提供凭据,否则ntop团队无法访问您的ntopng实例。

    06

    如何使用tmux终端多路复用器

    TMUX是终端多路复用器。类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;是BSD实现的Screen替代品,相对于Screen,它更加先进:支持屏幕切分,而且具备丰富的命令行参数,使其可以灵活、动态的进行各种布局和操作。使用它在您的的腾讯云CVM服务器上创建一个主机服务器,并通过客户端窗口连接到它。如果客户端断开连接,则服务器将继续运行。重新启动计算机或丢失网络连接后重新连接到的腾讯云CVM服务器时,可以重新连接到TMUX会话,并且您正在使用的文件仍将处于打开状态,并且您运行的进程仍将处于活动状态。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。

    03
    领券