单击时从其他div中删除类,也切换类

时间:2017-10-05 13:17:40

标签: jquery

我点击了多个div我想添加课程'有效'当我点击另一个div时,我希望它添加课程' active'我只是点击了这个div并删除了“活跃的”课程。来自上一个div。我的工作正常。

我还需要做的是删除课程' active'如果我点击当前活动的div,即一个toggleclass。我试图将toggleClass包含在我的jquery中,但它不起作用。有什么想法吗?

这是我的js

$('.myDiv').click(function(){
    $('.myDiv.active').removeClass('active').addClass('not-active');
    $(this).removeClass('not-active').addClass('active'); 
})

这是一个工作小提琴:https://jsfiddle.net/alexgomy/tfucru6z/3/

2 个答案:

答案 0 :(得分:5)

您可以使用:

$(function() {
  $('.myDiv').click(function() { // when a .myDiv is clicked
    $('.myDiv').not(this).removeClass('active')
    $(this).toggleClass('active')
  })
})

$(function() {
  $('.myDiv').click(function() { // when a .myDiv is clicked
    $('.myDiv').not(this).removeClass('active')
    $(this).toggleClass('active')
  })
})
.myDiv {
  width: 100px;
  height: 100px;
  margin: 10px;
  float: left;
  border: 1px solid black;
  text-align: center;
  padding: 30px;
}

.active {
  border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="myDiv">Once i have active class if you click me i should remove active class</div>
<div class="myDiv">Once i have active class if you click me i should remove active class</div>
<div class="myDiv">Once i have active class if you click me i should remove active class</div>
<div class="myDiv">Once i have active class if you click me i should remove active class</div>
<div class="myDiv">Once i have active class if you click me i should remove active class</div>

首先从所有div中删除活动类,除了从被点击的那个div中删除,然后在那个($(this))上切换该类。

答案 1 :(得分:0)

<script type="text/javascript">
  $('.acc-trigger').click(function() { // when a .myDiv is clicked

    $(this).toggleClass('active')
  })
</script>