您好,我對javascript一無所知,當我點擊每個專案時,幫我激活它。

$('.card > a').click(function(e){
// find/remove all active classes from each a
$('.mainNav > a').removeClass('active');
// add active selected a
$(this).addClass('active');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="col-sm-4">
<div class="card text-dark mb-3"style="auto" >
<div class="card-header" style="background: #ffc221" > MENU </div>
<ul class="list-group list-group-flush">
<li class="list-group-item active"><a href=""> Math mcq</a></li>
<li class="list-group-item"><a href=""> Urdu mcq</a></li>
<li class="list-group-item"><a href=""> Stat mcq</a></li>
</ul>
</div>
</div>
uj5u.com熱心網友回復:
問題是您的a標簽不是具有card該類的元素的子元素,因此選擇器 of.card > a不正確,因為它只影響作為具有 of 的元素的子元素(而不是后代)的class錨點active。>意思是“孩子”。取而代之的是,您可以使用空間,這意味著后代。然而,最好是定位你的li元素而不是a元素以使它們處于活動狀態,因為這樣你就可以使用siblings開箱即用的方法來洗掉active class. 如果您不需要active class從其他元素中洗掉 ,那么您可以簡單地洗掉呼叫siblings().
$('.card li').click(function(e){
// find/remove all active classes from each a
$('.mainNav > a').removeClass('active');
// add active selected a
$(this).addClass('active').siblings().removeClass("active");
e.preventDefault();
});
.active {
background-color: lightgreen;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="col-sm-4">
<div class="card text-dark mb-3"style="auto" >
<div class="card-header" style="background: #ffc221" > MENU </div>
<ul class="list-group list-group-flush">
<li class="list-group-item active"><a href=""> Math mcq</a></li>
<li class="list-group-item"><a href=""> Urdu mcq</a></li>
<li class="list-group-item"><a href=""> Stat mcq</a></li>
</ul>
</div>
</div>
uj5u.com熱心網友回復:
看起來你正在使用 jQuery?只需檢查一下,這也是我的答案將使用的內容。
$('.card > a').click(function(e){
// find/remove all active classes from each a
$('.mainNav > a').removeClass('active');
// add active selected a
$(this).addClass('active');
});
這看起來不錯,但我mainNav在你的問題中看不到任何地方。
>是直接后代選擇器,所以它試圖a直接在 下找到所有元素mainNav,我認為更好的方法是將選擇器更改為:
$('ul.list-group li > a').removeClass('active');
完整示例:
$('ul.list-group li > a').click(function(e){
e.preventDefault(); // added this line to prevent default click behaviour
// find/remove all active classes from each a
$('ul.list-group li > a').removeClass('active');
// add active selected a
$(this).addClass('active');
});
這條線也可能讓你失望,如果沒有看到 CSS 就很難說,但我猜你可能需要將 active 添加到li,而不是a標簽本身?
如果是這種情況,請更改:
// add active selected a
$(this).addClass('active');
到
// add active selected li
$(this).parent().addClass('active');
如果它是li應該有活動類的元素,那么這行也需要改變:
// find/remove all active classes from each
$('ul.list-group li').removeClass('active');
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/442497.html
標籤:javascript jQuery 列表 推特引导
