我写了一些JavaScript,并试图在aria-expanded元素为true或false时替换类,但似乎什么也没发生。当页面加载时,第一张卡片是打开的,因为aria-expanded =“true”。我想找到一种方法,在aria-expanded元素的值发生变化时替换类。我是jQuery和webdev的新手,因此感谢您的所有帮助。我使用了 Bootstrap accordion 来确保一次只能打开一个
<div id="headingOne">
<h5 class="card-title">
Or Files
<a data-toggle="collapse" class="float-right" href="#collapseFiles"
role="button" aria-expanded="true" data-target="#collapseFiles"
aria-controls="collapseNotes">
<i class="fas fa-angle-up></i>
</a>
</h5>
</div>
<div id="headingTwo">
<h5 class="card-title">
Or Notes
<a data-toggle="collapse" class="float-right" href="#collapseNotes" role="button" aria-expanded="false" data-target="#collapseNotes" aria-controls="collapseNotes">
<i class="fas fa-angle-down"></i>
</a>
</h5>
</div>
<div id="headingThree">
<h5 class="card-title">
Or Names
<a data-toggle="collapse" class="float-right" href="#collapseNames" role="button" aria-expanded="false" data-target="#collapseNames" aria-controls="collapseNotes">
<i class="fas fa-angle-down"></i>
</a>
</h5>
</div>
这就是jquery。
if ($('a').attr('aria-expanded').val() == 'true') {
$("a i").attr("class", "fa-angle-down");
} else {
$("a i").attr("class", "fa-angle-up");
}
4条答案
按热度按时间dw1jzc5e1#
我知道您可能希望使用JavaScript来完成此操作,但我有一种纯CSS方法来完成此操作:
HTML
我删除了锚标记上所有不必要的属性。我也删除了图标上的
fa-angle-down
。图标状态将通过CSS设置。CSS
您可以编写CSS来定位任何具有
data-toggle="collapse"
属性的锚标记。当它折叠时,Bootstrap会添加.collapsed
类,以便您可以使用它来相应地设置图标的样式。屏幕截图
小提琴演示
https://jsfiddle.net/davidliang2008/og1t8ksj/26/
p1tboqfb2#
您需要使用事件来捕获更改,例如https://api.jquery.com/on/
kpbwa7wx3#
试试这个:-
slwdgvem4#
已经有一段时间了,但我想这可能是这个问题的一个很好的答案:不需要使用JAVASCRIPT来完成这个任务。利用类'collapted',当折叠折叠时,它被添加到 Package 'a'中。
然后在样式表上:
.折叠.向下箭头{显示:无} ---------- .折叠式.折叠.向上箭头{显示:无} --------- .折叠式.折叠.向下箭头{显示:块}