我在前端使用Bootstrap编写了一个个人提要阅读器,并希望添加一个" Collapse / Expand All"按钮。
这是我的第一个JavaScript / JQuery代码,因此除了在Firefox Developer Console中打印变量外,我不知道如何调试它。
我的页面结构由面板组成。用户可以通过单击面板标题来展开或折叠面板。还有一个折叠或展开所有面板的按钮。
我的解决方案大部分时间都有效,但我注意到了一个奇怪的行为。以下是我重现问题的方法:
open_panel_count
变量看起来都很正常。以下是我使用的方法:
$(function() {
open_panel_count = 0;
function update_toggle_button() {
$('#toggle-btn').text((open_panel_count ? "Collapse" : "Expand") + " All")
}
update_toggle_button(); // Run once on page load to text #toggle-btn
$('#toggle-btn').click(function() {
$('.panel-collapse').collapse(open_panel_count ? 'hide' : 'show');
});
$('.panel-collapse').on('shown.bs.collapse', function () {
open_panel_count++;
update_toggle_button();
});
$('.panel-collapse').on('hidden.bs.collapse', function () {
open_panel_count--;
update_toggle_button();
});
});
有谁能指出我做错了什么?
您可以在https://github.com/utdemir/furby/blob/master/template.erb中看到整个模板 并访问演示:http://p.cogunluklazararsiz.org/furby/
答案 0 :(得分:12)
$('.panel-collapse').collapse('hide');
答案 1 :(得分:8)
根据Twitter Bootstrap文档,您可以通过运行“激活您的内容作为可折叠元素。”
$('.panel-collapse').collapse({
toggle: false
});
添加此内容可以解决您的问题。试一试。
$(function() {
$('.panel-collapse').collapse({
toggle: false
});
...
http://getbootstrap.com/javascript/#collapse
不确定为什么Twitter JS没有拿起你的data-target="#entry419294611" data-toggle="collapse"
。艰难地调试没有小提琴。
答案 2 :(得分:-1)
尝试更改
$('#toggle-btn').click(function() {
$('.panel-collapse').collapse(open_panel_count ? 'hide' : 'show');
});
有关
$('#toggle-btn').click(function() {
var state = open_panel_count ? 'hide' : 'show';
$('.panel-collapse').collapse(state);
});