【发布时间】:2018-01-25 22:19:43
【问题描述】:
我基于https://codepen.io/magnix/pen/OzeYmQ?limit=all&page=4&q=accordion 构建了一个简单的 Accordion,以确保它可以正常工作并仔细集成到我的代码中,但它似乎不起作用。它当前显示的是高中的地址。当页面加载时,它不会隐藏地址,当我单击链接折叠描述时 - 它不起作用。我去了所有的课程,确保没有错别字等。没有成功。
HTML
<ul class="linkLocation">
<li class="linkHover is-active">
<a href="#mapTX" class="linkThumb"> Austin, TX</a>
<p class="accordion-panel">
<address style="font-style: normal;">
High School 1<br>
1234 Congress Ave<br>
Austin, TX 75087
</address></p>
</li>
<li class="linkHover">
<a href="#mapLA" class="linkThumb"> Shreveport, LA</a>
<p class="accordion-panel">
<address style="font-style: normal;">
High School 2<br>
1234 Congress Ave<br>
Shreveport, LA 75087
</address></p>
</li>
</ul>
CSS
.linkThumb {
margin: 0;
padding: .8rem 0;
cursor: pointer;
font-weight: normal;
&::before {
content: '';
display: inline-block;
height: 7px;
width: 7px;
margin-right: 1rem;
margin-left: .5rem;
vertical-align: middle;
transform: rotate(-45deg);
transition: transform .2s ease-out;
}
}
.accordion-panel {
margin: 0;
padding-bottom: .8rem;
display: none;
}
.linkHover.is-active {
.linkThumb::before {
transform: rotate(45deg);
}
}
JS
$(function() {
// (Optional) Active an item if it has the class "is-active"
$(".linkLocation > .linkHover.is-active").children(".accordion-panel").slideDown();
$(".linkLocation > .linkHover").click(function() {
// Cancel the siblings
$(this).siblings(".linkHover").removeClass("is-active").children(".accordion-panel").slideUp();
// Toggle the item
$(this).toggleClass("is-active").children(".accordion-panel").slideToggle("ease-out");
});
});
这是不起作用的代码 - JSFIDDLE
【问题讨论】:
-
从小提琴看来,您似乎需要包含 jQuery。
-
你的小提琴也试图根据类进行选择,而 html 有元素
- 的 ID。将其更改为类或更新 JS 代码以从 id 读取。例如$("#linkLocation > .linkHover.is-active").children(".accordion-panel").slideDown();可能不错的选择是将 id 更改为 class。
-
刚刚更新了 JSFiddle。
标签: javascript css bootstrap-4 accordion