javascript - 如何在单击元素时切换类,但使用 JQuery 从所有其他元素中删除相同的类?

标签 javascript jquery

我正在尽我最大的努力来正确地表达这一点,所以请多多包涵。所以我试图只在被点击的元素上切换一个类(事件)。如果单击另一个元素,我想将“事件”类添加到单击的元素,并从任何其他元素中删除事件类。

问题是当我点击一个元素时添加了“active”类但是当我点击另一个元素时“active”类没有从其他元素中移除

           $("li.test a").click(function() {
                $(this).toggleClass("active");

            });

            $("li.test a").click(function() {
                $(this).toggleClass("active");
            });


            $("li.test a").click(function() {
                $(this).toggleClass("active");

            });

HTML

<li class="test1">
 <a href="#" class="">
</li>

<li class="test1">
 <a href="#" class="">
</li>

<li class="test1">
 <a href="#" class="">
</li>

<li class="test2">
 <a href="#" class="">
</li>

<li class="test2">
 <a href="#" class="">
</li>

<li class="test2">
 <a href="#" class="">
</li>

最佳答案

这是工作代码:

$("li.test a").on("click",function() {
  if($(this).hasClass("active")){
    $(this).removeClass("active");
  } else{
    $("a.active").removeClass("active");
    $(this).addClass("active");
  }
});
.active{
  color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<li class="test">
 <a href="#" class="">test</a>
</li>

<li class="test">
 <a href="#" class="">test</a>
</li>

<li class="test">
 <a href="#" class="">test</a>
</li>

<li class="test">
 <a href="#" class="">test</a>
</li>

<li class="test">
 <a href="#" class="">test</a>
</li>

<li class="test">
 <a href="#" class="">test</a>
</li>

(Working pen)

请注意,您在 HTML 中有类“test1”和“test2”,但在 JS 中有类“test”!

关于javascript - 如何在单击元素时切换类,但使用 JQuery 从所有其他元素中删除相同的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38312705/

相关文章:

javascript - 从元素底部计算像素

javascript - 如何使用存储在变量中的键动态获取对象的值

jquery - 使用 ICanHaz 从 JSON 渲染 HTML 字符串

javascript - jQuery UI 可调整大小的两个对象

javascript - 当用户上下滚动时移动页面上的元素

php - 页面选项卡使用什么 jQuery 插件?

javascript - Ajax 调用报告弹出窗口的父级

javascript - IE9 javascript 嵌套 `createElement` 失败

javascript - 将字节字符串返回给 ExternalInterface.call 会引发错误

javascript - JQuery 运行直到新页面加载