背景ページごとに一連の画像があり、配列を使用して、クリックしたメニュー項目に基づいて各画像を読み込みます。メニュー項目にもサブメニューがあり、メニューシステム全体が配列項目と「同期」している必要があります。
htmlメニュー:
Home (page 1) (menu item hidden but should be "Menu 1" if it would be displayed)
<ul id="menu">
<li><a href="page2">Menu 2</a></li>
<li><a href="page3">Menu 3</a>
<ul id="sub-menu">
<li><a href="page4">Menu 4</a></li>
</ul>
</li>
<li><a href="page5">Menu 5</a></li>
</ul>
配列:
[0] 1.jpg (image for the home where the menu name item isn't displayed)
[1] 2.jpg (this should be for Menu 2)
[2] 3.jpg (this should be for Menu 3)
[3] 4.jpg (this should be for Menu 4)
[4] 5.jpg (this should be for Menu 5)
サイトが読み込まれると、ホームページ用の[0]1.jpgと表示されます。ただし、最初にクリックできる項目は「メニュー2」です。メニューに「ホーム」ボタンが表示されていないため、[1]2.jpgに移動する必要があります。
これは私が使用するjQueryです:
jQuery (function($) {
$("#menu .menu li").each(function (index) {
var item = $(this);
$("a", item).click(function (e) {
e.preventDefault();
api.goTo(index+1);
});
});
});
「api.goTo(index + 1);」を使用 (ここで超大型プラグインを使用)メニュー項目の最初のクリックで言っている(または私はそうだと思う)、[1]であるはずのindex + 1に移動しますが、そうではなく、まだ残っているようですホームページに使用される[0]。また、ネストされたアイテムは引き続きインデックスシーケンスに従います。
基本的に、正しいページの正しい画像を取得できません。クリックしたメニュー項目に従って配列をナビゲートしていないようです。
この場合のPsインデックスは、jqueryループ内のアイテムの0ベースのインデックスです。