我正在尝试在“切换折叠”按钮(实际上是图像)上执行两项任务:
- 如果页面的一部分被折叠加载(来自 cookie),则将“折叠”类添加到祖先标记。
- 添加一个事件处理程序以在单击按钮时切换“折叠”类的存在。
为此,我有以下代码:
function toggleCollapsedPlugin(sender, collapseState) {
// do something
// expects 1 OR 2 arguments
}
function initCollapsedPlugin() {
var forumcats = document.getElementById('forums').getElementsByClassName('forumbit_nopost L1');
var button;
var buttonParent;
for (var i = 0; i < forumcats.length; i++) {
button = forumcats[i].getElementsByTagName('a')[1].getElementsByTagName('img')[0]; // will always exist
buttonParent = button.parentNode.id; // will never be empty
if (button.src.indexOf('_collapsed') >= 0) {
toggleCollapsedPlugin(button.parentNode.id, true);
}
button.addEventListener('click', function () { toggleCollapsedPlugin(buttonParent); }, false);
}
}
当我逐步完成initCollapsedPlugin()
Chrome DevTools 中的第一项时,一切似乎都很好。当我稍后单击其中一个图像进行调用toggleCollapsedPlugin(sender)
时,sender
总是等于buttonParent
中的最后一项forumcats
。有人可以解释为什么以及如何解决这个问题吗?
(如果它帮助任何人提供答案,这就是 vBulletin4 软件。)