javascript - Accordion 不将该类应用于下一个元素

标签 javascript html css accordion

我的网站上有一个 Accordion 可以正常工作,但是当我单击其中一个按钮时,所有具有相同类的元素都会得到切换,而不仅仅是下一个元素

我有以下 CSS

  button.flxaccordion {
  background-color: rgb(255, 231, 217);
  color: #444;
  cursor: pointer;
  padding: 18px;
  width: 100%;
  border: solid 0px;
  text-align: left;
  outline: none;
  font-size: 18px;
  transition: 0.4s;
  font-weight: 600;
}
button.flxaccordion.active,
button.flxaccordion:hover {
  background-color: rgb(233, 93, 15);
}
button.flxaccordion:after {
  content: '\25bc';
  font-size: 13px;
  color: rgb(233, 93, 15);
  float: right;
  margin-left: 5px;
}
button.flxaccordion.active:after {
  content: "\25b2";
  color: rgb(255, 231, 217);
}
.flxpanel {
  padding: 0 18px;
  background-color: white;
  max-height: 0;
  overflow: hidden;
  transition: 0.6s ease-in-out;
  opacity: 0;
}
.flxpanel.show {
  opacity: 1;
  max-height: 500px;
}
.flxpanel.hide {
  opacity: 0;
  height: 0;
}

以及我页面上的以下代码

<p><button class="flxaccordion">Satellite</button></p>
<div class="flxpanel">
<p>Multi disc Floor Grinders and Polishers with passive or active heads</p>
</div>
<p><button class="flxaccordion">Meteor</button></p>
<div class="flxpanel">
<p>Small Single Head Floor Grinders</p>
</div>
<p><button class="flxaccordion">GrinderTec</button></p>
<div class="flxpanel">
<p>Hand Held Floor Grinders</p>
</div>

<script type="text/javascript">// <![CDATA[
var acc = $(".flxaccordion"); //jquery flxaccordion

acc.click(function() //when we click on element
{ 
    $(this).toggleClass("active");  //it is active
    $('.flxpanel').not($(this).next()).toggleClass("show");
    });
// ]]></script>

我想我在这里混淆了一些元素,但它似乎在每个按钮之后显示了每个元素。

我需要将 toggleClass("show"); 更改为 toggleClass("hide"); 并添加另一行以使其在之后更改元素toggleClass("show"); 的事件按钮。

有什么建议吗?

最佳答案

您的 jquery 脚本需要更改如下内容:

$(document).ready(function(){
var acc = $(".flxaccordion"); //jquery flxaccordion
  acc.click(function() {
  $(this).toggleClass("active");
  $(this).parent().next().toggleClass('show');
 });
});

关于javascript - Accordion 不将该类应用于下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39340468/

相关文章:

html - 如何正确放置 <aside> 标签?

jquery - Chrome v.36 中的动画错误?

javascript - 从数字中获取字节问题

javascript - 为什么babel会把 "true"转成 "!0"

javascript - ".addEventListener is not a function"为什么会出现这个错误?

jquery - 为什么代码在jsfiddle中中断

html - 具有背景图像和不透明度的 CSS Hover

javascript - 如何搜索字符串数组并产生建议性结果

javascript - 为什么 document.getElementsByName ("name")没有返回任何值?

php - 将 zip 文件上传到 PHP 上传网站不起作用,但适用于 mac