作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 DOM 中有三个相同的元素。我的意思正是一条摆动的线 <span class="caret"></span>
<ul>
<li class="nav-item-1">
<a href="#">ITEM 1</a>
<span class="caret"></span>
</li>
</ul>
<ul>
<li class="nav-item-2">
<a href="#">ITEM 2</a>
<span class="caret"></span>
</li>
</ul>
<ul>
<li class="nav-item-3">
<a href="#">ITEM 3</a>
<span class="caret"></span>
</li>
</ul>
场景:我点击第一个<span class="caret"></span>
获得类(class)"open"
,剩下的仍然只有"caret"
。我点击第二个<span class="caret"></span>
获得类(class)"open"
,在第一个类 "open"
已移除。是否可以?我写了这样的东西:
$(".caret").click(function () {
$(this).data('clicked', true);
if ($('.caret').data('clicked')) {
$(".caret").toggleClass('opened');
}
});
它可以工作,但是所有 "caret"
类(class)获取toggleClass('opened')
我只是想让它得到你点击的那个......
最佳答案
您使用 $(this)
的做法是正确的,但随后又恢复使用 $('.caret')
。这样做:
$(".caret").click(function () {
$(this).toggleClass('opened');
});
<小时/>
询问者请求关闭所有其他 .caret
类:
$(".caret").click(function () {
$(".caret").removeClass('opened');
$(this).addClass('opened');
});
关于javascript - 如何仅向多个相同元素之一添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60059359/
我是一名优秀的程序员,十分优秀!