首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在活动类标题颜色更改(添加/删除类)

在活动类标题颜色更改(添加/删除类)
EN

Stack Overflow用户
提问于 2019-07-31 10:42:08
回答 1查看 93关注 0票数 0

我正在做手风琴,我有两个内容div块,我得到了输出,但问题是我的代码不是标准格式的,代码行更多。我只想简单地使用add/remove类。我想更改活动选项卡的标题颜色。谁能给我指明正确的方向。

代码语言:javascript
复制
$(".benefits-slide1").click(function() {
  if ($(".benefits-slideDiv1").hasClass("noDisplay")) {
    $(".benefits-slideDiv1").removeClass("noDisplay").show("slideDown");
    $(".benefits-slideDiv2, .benefits-slideDiv3, .benefits-slideDiv4").addClass("noDisplay").hide("slideDown");
  }
});

$(".benefits-slide2").click(function() {
  if ($(".benefits-slideDiv2").hasClass("noDisplay")) {
    $(".benefits-slideDiv2").removeClass("noDisplay").show("slideDown");
    $(".benefits-slideDiv1, .benefits-slideDiv3, .benefits-slideDiv4").addClass("noDisplay").hide("slideDown");
  }
});

$(".benefits-slide3").click(function() {
  if ($(".benefits-slideDiv3").hasClass("noDisplay")) {
    $(".benefits-slideDiv3").removeClass("noDisplay").show("slideDown");
    $(".benefits-slideDiv1, .benefits-slideDiv2, .benefits-slideDiv4").addClass("noDisplay").hide("slideDown");
  }
});

$(".benefits-slide4").click(function() {
  if ($(".benefits-slideDiv4").hasClass("noDisplay")) {
    $(".benefits-slideDiv4").removeClass("noDisplay").show("slideDown");
    $(".benefits-slideDiv1, .benefits-slideDiv2, .benefits-slideDiv3").addClass("noDisplay").hide("slideDown");
  }
});
代码语言:javascript
复制
.slideDiv1 {
  background-color: red;
}

.slideDiv2 {
  background-color: blue;
}

.slideDiv3 {
  background-color: green;
}

.slideDiv4 {
  background-color: pink;
}

.noDisplay {
  display: none;
}

div#accordionExample {
  display: flex;
  flex-direction: column;
}

.benefits-wrap {
  background: #ccc;
  height: 100px;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<div class="accordion nav" id="accordionExample" id="myTab" role="tablist">
  <div class="benefits-acc">
    <button class="benefits d-flex benefits-slide1">
			<h3 class="pl-3">Personalized health journey</h3>
		</button>
    <div class="card-body benefits-slideDiv1">
      <p>content 1</p>
    </div>
  </div>

</div>
<div class="benefits-acc">
  <button class="benefits d-flex benefits-slide2">
		<h3 class="pl-3">Personalized health journey</h3>
	</button>
  <div class="card-body benefits-slideDiv2 noDisplay">
    <p>content 2</p>
  </div>
</div>

<div class="benefits-acc">
  <button class="benefits d-flex benefits-slide3">
		<h3 class="pl-3">Personalized health journey</h3>
	</button>
  <div class="card-body benefits-slideDiv3 noDisplay">
    <p>content 3</p>
  </div>
</div>

<div class="benefits-acc">
  <button class="benefits d-flex benefits-slide4">
		<h3 class="pl-3">Personalized health journey</h3>
	</button>
  <div class="card-body benefits-slideDiv4 noDisplay">
    <p>content 4</p>
  </div>
</div>

</div>


<div class="benefits-wrap">
  <h3>Second content block</h3>
  <div class="benefits-slideDiv1"> Second content 1</div>
  <div class="benefits-slideDiv2 noDisplay">Second content 2</div>
  <div class="benefits-slideDiv3 noDisplay">Second content 3</div>
  <div class="benefits-slideDiv4 noDisplay">Second content 4</div>
</div>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-31 11:33:16

这是您尝试过的一个例子(并不完美),请注意,我在每个按钮中都使用了HTML5 data-*属性来存储关联的div的className。

代码语言:javascript
复制
$(".benefits").click(function() {

  let otherButtons = $(".benefits").not($(this));
  otherButtons.siblings(".card-body").addClass("noDisplay");
  otherButtons.parent().removeClass("active");
  
  $(this).parent().addClass("active");

  $('.benefits-wrap').children('div').addClass("noDisplay");

  let divClass = $(this).data('div');
  
  $(`.${divClass}`).toggleClass("noDisplay");

});
代码语言:javascript
复制
.benefits-slideDiv1 {
  background-color: red;
}

.benefits-slideDiv2 {
  background-color: blue;
}

.benefits-slideDiv3 {
  background-color: green;
}

.benefits-slideDiv4 {
  background-color: pink;
}

.noDisplay {
  display: none;
}

div#accordionExample {
  display: flex;
  flex-direction: column;
}

.benefits-wrap {
  background: #ccc;
  height: 100px;
}

.benefits-acc.active {
  background-color: lightblue;
}

.benefits-acc.active h3 {
  color: green;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<div class="accordion nav" id="accordionExample" id="myTab" role="tablist">
  <div class="benefits-acc active">
    <button class="benefits d-flex benefits-slide1" data-div="benefits-slideDiv1">
			<h3 class="pl-3">Personalized health journey</h3>
		</button>
    <div class="card-body benefits-slideDiv1">
      <p>content 1</p>
    </div>
  </div>

</div>
<div class="benefits-acc">
  <button class="benefits d-flex benefits-slide2" data-div="benefits-slideDiv2">
		<h3 class="pl-3">Personalized health journey</h3>
	</button>
  <div class="card-body benefits-slideDiv2 noDisplay">
    <p>content 2</p>
  </div>
</div>

<div class="benefits-acc">
  <button class="benefits d-flex benefits-slide3" data-div="benefits-slideDiv3">
		<h3 class="pl-3">Personalized health journey</h3>
	</button>
  <div class="card-body benefits-slideDiv3 noDisplay">
    <p>content 3</p>
  </div>
</div>

<div class="benefits-acc">
  <button class="benefits d-flex benefits-slide4" data-div="benefits-slideDiv4">
		<h3 class="pl-3">Personalized health journey</h3>
	</button>
  <div class="card-body benefits-slideDiv4 noDisplay">
    <p>content 4</p>
  </div>
</div>

</div>


<div class="benefits-wrap">
  <h3>Second content block</h3>
  <div class="benefits-slideDiv1"> Second content 1</div>
  <div class="benefits-slideDiv2 noDisplay">Second content 2</div>
  <div class="benefits-slideDiv3 noDisplay">Second content 3</div>
  <div class="benefits-slideDiv4 noDisplay">Second content 4</div>
</div>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57288914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档