手风琴 - 切换时更改背景 color/image:
Accordion - Change background color/image when toggling:
单击箭头图标时更改背景 color/image 时出现问题。
希望实现两个目标。
当用户点击箭头图标 "to extend" 时,背景需要更改为颜色或图像。当用户点击相同的箭头图标到 "collapse" 它需要返回到默认值。
默认 - 全部折叠且不显示绿色。
不关心加号图标(左侧),因为稍后会被删除。
点击箭头图标扩展时,设法通过样式将颜色更改为绿色,但默认显示绿色,这是不应该的,它应该看起来像其他未点击的项目。
我也试过操作js代码无果
这是用于视觉和进一步故障排除的操作:
https://codepen.io/zmerlin/pen/gyxdPx
function toggleChevron(e) {
$(e.target)
.prev('.panel-heading')
.find('i.indicator')
.toggleClass('glyphicon-minus glyphicon-plus');
//$('#accordion .panel-heading').css('background-color', 'green');
$('#accordion .panel-heading').removeClass('highlight');
$(e.target).prev('.panel-heading').addClass('highlight');
}
$('#accordion').on('hidden.bs.collapse', toggleChevron);
$('#accordion').on('shown.bs.collapse', toggleChevron);
要取消启动时默认的绿色突出显示,您应该从第一个面板的 .panel-heading
.
中删除突出显示 class
然后,如果您仔细查看当前的代码,您会发现无论您采取什么操作,您最终都会添加高亮显示 class:
$(e.target).prev('.panel-heading').addClass('highlight');
由于您希望在打开面板时显示突出显示,并在面板关闭后隐藏它,因此您应该将代码更改为以下内容:
function toggleChevron(e) {
$(e.target)
.prev('.panel-heading')
.find('i.indicator')
.toggleClass('glyphicon-minus glyphicon-plus');
$('#accordion .panel-heading').removeClass('highlight');
if (e.type === 'shown') {
$(e.target).prev('.panel-heading').addClass('highlight');
}
}
$('#accordion').on('hidden.bs.collapse', toggleChevron);
$('#accordion').on('shown.bs.collapse', toggleChevron);
进一步解释 - 您的切换功能在两种事件类型上执行:shown
和 hidden
。然后,您可以使用 if 大小写来检查用户是否正在打开或关闭选项卡,并仅在必要时添加 highlight
class。
单击箭头图标时更改背景 color/image 时出现问题。
希望实现两个目标。
当用户点击箭头图标 "to extend" 时,背景需要更改为颜色或图像。当用户点击相同的箭头图标到 "collapse" 它需要返回到默认值。
默认 - 全部折叠且不显示绿色。
不关心加号图标(左侧),因为稍后会被删除。
点击箭头图标扩展时,设法通过样式将颜色更改为绿色,但默认显示绿色,这是不应该的,它应该看起来像其他未点击的项目。
我也试过操作js代码无果
这是用于视觉和进一步故障排除的操作:
https://codepen.io/zmerlin/pen/gyxdPx
function toggleChevron(e) {
$(e.target)
.prev('.panel-heading')
.find('i.indicator')
.toggleClass('glyphicon-minus glyphicon-plus');
//$('#accordion .panel-heading').css('background-color', 'green');
$('#accordion .panel-heading').removeClass('highlight');
$(e.target).prev('.panel-heading').addClass('highlight');
}
$('#accordion').on('hidden.bs.collapse', toggleChevron);
$('#accordion').on('shown.bs.collapse', toggleChevron);
要取消启动时默认的绿色突出显示,您应该从第一个面板的 .panel-heading
.
然后,如果您仔细查看当前的代码,您会发现无论您采取什么操作,您最终都会添加高亮显示 class:
$(e.target).prev('.panel-heading').addClass('highlight');
由于您希望在打开面板时显示突出显示,并在面板关闭后隐藏它,因此您应该将代码更改为以下内容:
function toggleChevron(e) {
$(e.target)
.prev('.panel-heading')
.find('i.indicator')
.toggleClass('glyphicon-minus glyphicon-plus');
$('#accordion .panel-heading').removeClass('highlight');
if (e.type === 'shown') {
$(e.target).prev('.panel-heading').addClass('highlight');
}
}
$('#accordion').on('hidden.bs.collapse', toggleChevron);
$('#accordion').on('shown.bs.collapse', toggleChevron);
进一步解释 - 您的切换功能在两种事件类型上执行:shown
和 hidden
。然后,您可以使用 if 大小写来检查用户是否正在打开或关闭选项卡,并仅在必要时添加 highlight
class。