我正在使用前端的 Bootstrap 编写个人提要阅读器,并想添加一个“全部折叠/展开”按钮。
这是我的第一个 JavaScript/JQuery 代码,所以除了在 Firefox 开发者控制台中打印变量外,我不知道如何调试它。
我的页面结构由面板组成。用户可以通过单击面板标题来展开或折叠面板。还有一个用于折叠或展开所有面板的按钮。
我的解决方案在大多数情况下都有效,但我注意到一种奇怪的行为。这是我重现问题的方法:
- 第一次打开页面
- 单击其标题展开一个面板
- 现在折叠所有按钮折叠打开的面板,并展开其他面板。好像它“切换”所有面板而不是关闭它们。
- 在这种奇怪的行为之后,一切正常,我无法在不刷新页面的情况下重现问题。每一步
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/