我想突出显示用户打开的面板,当用户点击卡片标题中的按钮时,背景设置为红色,这样做不会引起任何麻烦,如代码片段所示。
在某些情况下,我会有一个面板,通常是第一个,在页面加载时打开,我用类show
设置它。我的目标是在页面加载时也将卡片标题的背景设置为红色。
card-header中的按钮使用js设置,如代码片段所示。
我想我必须使用javascript来切换类。
首先,我添加了一个新类highlight
,并添加了以下CSS代码:
.accordion .card-header.highlight {
color: #fff;
background-color: red;
}
然后我添加了下面的js(请注意,我发现js很难理解,尽管我学得很慢,但我确实在学习),尝试设置页面加载时打开窗格标题的背景。
$(document).ready(function(){
// Add class highlight to panel with show class
$(".collapse.show").each(function(){
$(this).prev(".card-header").addClass("highlight");
});
// toggle highlight class
$(".card-header .btn").click(function(){
$(".card-header").toggleClass("highlight");
});
});
我看起来很乱,可能是因为它是,并没有产生预期的结果。
如何在页面加载时设置打开面板标题的背景(红色),如何使用js切换类?
一个一个二个一个一个一个三个一个一个一个一个一个四个一个
2条答案
按热度按时间8zzbczxx1#
您还可以简化一点。您已经在 accordion 组件上动态添加了 Package 器。唯一缺少的是,您没有将具有show属性的组件的
aria-expanded
属性设置为true。为此,您可以检查show
类是否存在,并动态添加值,如下所示:现在不需要额外的代码来添加highlight类,因此在CSS中也不需要它。
工作示例如下:
x一个一个一个一个x一个一个二个一个x一个一个三个一个
ohfgkhjo2#
您需要选择接收样式的按钮,并过滤打开的n
.card
元素。此处为.card:first-of-type
示例