Javascript “折叠标签”;“手动”;don';t更改启动按钮上的文本
只有在单击按钮Javascript “折叠标签”;“手动”;don';t更改启动按钮上的文本,javascript,jquery,twitter-bootstrap,bootstrap-accordion,Javascript,Jquery,Twitter Bootstrap,Bootstrap Accordion,只有在单击按钮#collapse_init时,我才能根据活动的布尔变量将按钮上的文本更改为“全部显示”或“全部隐藏” 当我手动隐藏/折叠选项卡(一个接一个)时,按钮上的文本不会更改,我正在尝试找出如何修复该问题 我的意思是,无论是否显示所有选项卡(但不是通过按钮),按钮文本都不会更改 **目前,画笔工作不正常-按钮工作不正常(仅在“画笔”中,在我的代码中,它工作正常),它不会一次折叠/隐藏所有内容(同时尝试找出原因) var-active=false; $('#collapse_init'
#collapse_init
时,我才能根据活动的
布尔变量将按钮上的文本更改为“全部显示”或“全部隐藏”
当我手动隐藏/折叠选项卡(一个接一个)时,按钮上的文本不会更改,我正在尝试找出如何修复该问题
- 我的意思是,无论是否显示所有选项卡(但不是通过按钮),按钮文本都不会更改
var-active=false;
$('#collapse_init')。单击(函数(){
如果(活动){
主动=假;
$('.panel collapse')。collapse('hide');
$('.panel title').attr('data-toggle','collapse');
$(this.text('Show all');
}否则{
主动=真;
$('.panel collapse')。collapse('show');
$('.panel title').attr('数据切换','');
$(this.text('Hide all');
}
});
$('.accordion toggle')。单击(函数(){
var-visible=$('.accordion-toggle:visible')。长度;
如果(可见>0){
$('#collapse_init')。text('Hide all');
}否则{
$('#collapse_init')。text('Show all');
}
});代码>
全部展示
一个动物教区的陈词滥调reprehenderit,enim eiusmod high life accusamus terry richardson ad squid。3狼月亮奥特餐厅,非丘比特滑板多洛早午餐。食品车奎奴亚藜。早午餐3狼月亮临时,圣塔阿利夸放了一只鸟在上面鱿鱼单一来源咖啡NullaAssumenda shoreditch等Nihil anim keffiyeh helvetica,工艺啤酒工人wes anderson cred Nesciut sapiente ea proident。纯素食主义者,屠夫副洛莫。紧身裤从工艺啤酒场到餐桌,生料牛仔布美学合成物,你可能还没听说过accusamus labore可持续VHS。
两个动物教区的陈词滥调reprehenderit,enim eiusmod high life accusamus terry richardson ad squid。3狼月亮奥特餐厅,非丘比特滑板多洛早午餐。食品车奎奴亚藜。早午餐3狼月亮临时,圣塔阿利夸放了一只鸟在上面鱿鱼单一来源咖啡NullaAssumenda shoreditch等Nihil anim keffiyeh helvetica,工艺啤酒工人wes anderson cred Nesciut sapiente ea proident。纯素食主义者,屠夫副洛莫。紧身裤从工艺啤酒场到餐桌,生料牛仔布美学合成物,你可能还没听说过accusamus labore可持续VHS。
三个动物教区的陈词滥调reprehenderit,enim eiusmod high life accusamus terry richardson和squid。3狼月亮奥特餐厅,非丘比特滑板多洛早午餐。食品车奎奴亚藜。早午餐3狼月亮临时,圣塔阿利夸放了一只鸟在上面鱿鱼单一来源咖啡NullaAssumenda shoreditch等Nihil anim keffiyeh helvetica,工艺啤酒工人wes anderson cred Nesciut sapiente ea proident。纯素食主义者,屠夫副洛莫。紧身裤从工艺啤酒场到餐桌,生料牛仔布美学合成物,你可能还没听说过accusamus labore可持续VHS。
添加此代码并重试
$('.accordion-toggle').click(function () {
var visible = $('.accordion-toggle:visible').length;
if(visible >0){
$('#collapse_init').text('Hide all');
}else{
$('#collapse_init').text('Show all');
}
});
我认为您遇到的问题是,$('.accordion toggle:visible')。在面板打开/关闭之前,正在检索长度
您应该使用显示的.bs.collapse和隐藏的.bs.collapse来检测面板何时完成打开或关闭
这是我的裂缝。虽然不太好,但还是比较干净(也许)
我用你建议的代码更新了钢笔,它不工作了。尝试显示每个选项卡(手动,一个接一个)按钮上的文本未更改为“全部显示”accordian在codepen中无法正常工作。可以在代码中尝试,也可以使用var visible=$('.collapse.in:visible').length;tese课程是什么意思<代码>隐藏的.bs.collapse
和显示的.bs.collapse
它们是在boostrap collapse
中构建的吗?还有,什么是代码>在hidden.bs.collapse
function中它们不是类,而是事件。它们在内部由引导调用。Showed.bs.collapse发生在可折叠元素完全隐藏时。bs.collapse发生在可折叠元素完全隐藏时,$('.panel collapse:visible')前面的双击(!!
)。长度
只是将整数快速转换为布尔值的技巧。它基本上与$('.panel collapse:visible')相同。长度>0
;我只是更喜欢:)更多关于代码正在工作(我对代码做了一点更改),我遇到了一个错误>“手动”隐藏2个选项卡>单击按钮“全部显示”>其中只有一个显示(第二个仍处于隐藏状态)。当您仅显示/隐藏一个或多个选项卡,然后尝试显示/隐藏所有选项卡时,该区域存在错误。我如何解决它?我不太清楚原因,但从每个面板中删除数据父项=“#accordion”
解决了这个问题。我更新了我的代码笔。:-)
var active = false,
$collapseBtn = $('#collapse_init'),
$accordion = $('#accordion');
$collapseBtn.on('click',function(){
active = ! active;
$('.panel-collapse').collapse( active ? 'show' : 'hide');
$('.panel-title').attr('data-toggle', active ? '' : 'collapse' );
})
$accordion.on({
'shown.bs.collapse': function () {
active = true;
$collapseBtn.text( 'Hide all' );
},
'hidden.bs.collapse': function ( e) {
active = ! ! $('.panel-collapse:visible').length;
$collapseBtn.text( ( active ? 'Hide' : 'Show' ) + ' all' );
}
});