单击嵌套的子元素时,Javascript将类添加到下一个元素

休斯敦

我有一个菜单结构,其中隐藏的子菜单不是菜单项的子项。我在主顶级链接中有一个span元素,它将用作箭头来表示移动设备上的子菜单。当用户触摸span元素时,我需要下拉菜单添加一个类(Javascript不使用jQuery)以显示它。

这样的事情(请注意,这不是我构造菜单的方式,这是我无法更改的网站上已经存在的代码)

<a href="#">Top Level Menu Item #1
<span>⇩</span>
</a>
<div class="dropdown-menu">Dropdown Menu Here</div>

<a href="#">Top Level Menu Item #2
<span>⇩</span>
</a>
<div class="dropdown-menu">Dropdown Menu Here</div>

<a href="#">Top Level Menu Item #3
<span>⇩</span>
</a>
<div class="dropdown-menu">Dropdown Menu Here</div>

因此,当触摸或单击跨度时,.dropdown菜单将添加一个类。

Connexo

随便去吧 span.parentNode.nextElementSibling.classList.toggle('visible');

const spans = document.querySelectorAll('a>span');

for (const span of spans) {
  span.addEventListener('click', (e) => {
    e.stopPropagation();
    span.parentNode.nextElementSibling.classList.toggle('visible');
  })
}
.dropdown-menu {
  opacity: 0;
  transition: all .2s ease-in-out;
}

.dropdown-menu.visible {
  opacity: 1;
}
<a href="#">Top Level Menu Item #1
  <span>⇩</span>
</a>
<div class="dropdown-menu">Dropdown Menu Here</div>

<a href="#">Top Level Menu Item #2
  <span>⇩</span>
</a>
<div class="dropdown-menu">Dropdown Menu Here</div>

<a href="#">Top Level Menu Item #3
  <span>⇩</span>
</a>
<div class="dropdown-menu">Dropdown Menu Here</div>

请注意,我将点击监听器限制为<span>⇩</span>,链接本身不受影响。

让我知道您是否需要IE11兼容代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

简单的轮播滑块:将类删除到单击的元素,然后将其添加到下一个同级

在Javascript中将类添加到下一个兄弟元素

jQuery:如果为XYZ,则将类添加到此AND下一个元素

如何将下一个元素添加到网格

单击时,将类添加到HTML列表中的一个且只有一个元素

如果下一个元素有一个类,则将HTML添加到div

单击下一个按钮时如何将所需的属性页添加到属性表

将类添加到悬停时共享类的另一个元素

在单击按钮以将元素添加到 javascript 中的数组时,每次 console.logging 都会返回一个少一个元素的数组

如何在单击时将类添加到块中的一个元素并从其他元素中删除相同的类?

删除一个类,然后在单击按钮时将其添加到摘要中的下一个项目中

jQuery datepicker将单击事件添加到上一个下一个按钮

在元素上单击时将CSS类添加到元素,出现一些错误?

单击列表的第二个子级时,将类添加到特定元素

将类添加到轮播中的下一个和上一个div

遍历div-将类添加到上一个和下一个div

单击下一个/上一个按钮时,如何将活动类更改为LI元素?

XSLT将嵌套元素添加到基于现有元素的最后一个节点

仅当添加了另一个类时,才将类添加到元素中

单击时将类添加到没有Jquery的子元素

SСSS嵌套:如何将类添加到上一个父元素

通过jQuery将类添加到另一个元素时删除一个元素上的类

如何使用jQuery将类添加到每个集合的第一个子元素中

滚动到另一个元素时尝试将class添加到元素

将列表的每个前一个值添加到下一个

将焦点移至下一个“li”元素,忽略所有嵌套元素

将元素/类添加到 javascript/jquery 字符串中的第一个唯一单词

将Angular添加到DOM的每个HTML元素添加一个CSS类

当滚动到另一个HTML元素时,将CSS类动态添加到Fixed DIV