【发布时间】:2019-10-01 21:28:48
【问题描述】:
我的一个设计中有一个手风琴引导组件。我从 font awesome 添加了一个向下的胡萝卜,当手风琴展开时,我想向该胡萝卜添加一个“旋转”类,使其指向上方。然后当手风琴崩溃时,我希望胡萝卜再次指向下方。该代码适用于第一个向下的胡萝卜,但不适用于其余部分。我怎样才能使课程适用于用户点击的任何一个?
这里是 HTML
<div class="accordion my-5" id="accordionExample">
<div class="card" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
<div class="card-header d-flex" id="headingOne">
<h2 class="mb-0">
<button class="btn" type="button">
question 1
</button>
</h2>
<i class="fas fa-caret-down" style="margin-left:auto; padding:12px 10px 0 0;"></i>
</div>
<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
<div class="card-body">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed id tellus urna.
</div>
</div>
</div>
<div class="card" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
<div class="card-header d-flex" id="headingTwo">
<h2 class="mb-0">
<button class="btn collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
question 2
</button>
</h2>
<i class="fas fa-caret-down" style="margin-left:auto; padding:12px 10px 0 0;"></i>
</div>
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
<div class="card-body">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed id tellus urna.
</div>
</div>
</div>
<div class="card" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
<div class="card-header d-flex" id="headingThree">
<h2 class="mb-0">
<button class="btn collapsed" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
question 3
</button>
</h2>
<i class="fas fa-caret-down" style="margin-left:auto; padding:12px 10px 0 0;"></i>
</div>
<div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample">
<div class="card-body">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed id tellus urna.
</div>
</div>
</div>
<div class="card" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
<div class="card-header d-flex" id="headingFour">
<h2 class="mb-0">
<button class="btn collapsed" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
question 4
</button>
</h2>
<i class="fas fa-caret-down" style="margin-left:auto; padding:12px 10px 0 0;"></i>
</div>
<div id="collapseFour" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample">
<div class="card-body">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed id tellus urna.
</div>
</div>
</div>
</div>
这里是 Javascript:
var carotDown = document.querySelector('.fa-caret-down');
carotDown.addEventListener('click', function(e){
e.target.classList.toggle('rotate');
});
【问题讨论】:
-
“Document 方法
querySelector()返回文档中与指定选择器匹配的第一个元素。” 您正在寻找@987654322 @. -
我将它更新为 querySelectorAll,现在它们都不起作用了。
-
你看过querySelectorAll页面上的例子了吗?您需要在结果上使用
forEach以将处理程序应用于各个项目。 -
你打败了我!我正要评论那件事。让我快速尝试一下。我确定这就是问题所在。
标签: javascript twitter-bootstrap dom-events