「折りたたみの切り替え」ボタン(実際には画像)で2つのタスクを実行しようとしています:
- ページのセクションが (Cookie から) 折りたたまれた状態で読み込まれる場合は、祖先タグにクラス "collapsed" を追加します。
- ボタンがクリックされたときに「折りたたみ」クラスの存在を切り替えるイベント ハンドラーを追加します。
そのために、次のコードがあります。
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);
}
}
Chrome DevToolsinitCollapsedPlugin()
の最初の項目に進むと、すべて問題ないように見えます。後で画像の 1 つをクリックして を呼び出すとtoggleCollapsedPlugin(sender)
、は常にの最後の項目sender
と等しくなります。誰かが理由とこれを修正する方法を説明できますか?buttonParent
forumcats
(誰かが回答を提供するのに役立つ場合、これは vBulletin4 ソフトウェアです。)