我正在使用Bootstrap前端编写个人的RSS阅读器,并想添加一个“收起/展开全部”按钮。
这是我第一次编写JavaScript / JQuery代码,因此除了在Firefox开发者控制台中打印变量之外,我不知道如何调试它。
我的页面结构由面板组成。用户可以通过单击面板头来展开或折叠面板。还有一个按钮可用于折叠或展开所有面板。
我的解决方案大多数时候都有效,但我注意到了一种奇怪的行为。以下是我如何重现问题:
这是我第一次编写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/上访问演示。