2012-05-21 58 views
-1

我有一組每個頁面的背景圖像中,我使用一個數組來加載基於菜單項我點擊每幅圖像。該菜單項有子菜單也和整個菜單系統shoudl在「同步」與數組項:陣列項目作爲列表和嵌套列表

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(索引+ 1);」 (在這裏使用超大插件)我說(或我想我是)在菜單項的第一次點擊,去索引+ 1應該是[1],但它不是,它看起來仍然是[0]用於主頁壽。此外,我建議嵌套的項目仍然遵循索引序列。

基本上我不能得到正確的頁面正確的圖像。這就像我不按照我點擊的菜單項導航數組。

P.s.指數在這種情況下是jQuery中環項目的0基於索引

+0

索引你的數組? – mattytommo

+0

是的,這確實是我的陣列 –

回答

1

我不知道你在做什麼,而是你使用一個變量,該變量會改變綁定點擊功能的循環中,結果將不會是你所期望的。

也許這將幫助?

$('a', 'li').on('click', function(e) { 
    e.preventDefault(); 
    var index = this.href.replace('page', ''); 
    api.goTo(index); 
}); 

由於子菜單只是從點擊時獲得正確的數字從點擊看起來似乎是最簡單的。

當數組引用值,你已經做的:

var index = ['1.jpg', '2.jpg', '3.jpg'] //an array, starts with zero 

var firstimage = index[0]; //this variable is now the string "1.jpg" 

我猜你只是傳遞一個號碼給api.goTo(number)功能,該功能就會發現你的數組中的圖像鏈接,至少這是它對我來說是什麼樣子?

+0

準確。 有啥 「VAR指數= this.href.replace(頁面', '');」 ..什麼是「頁面」呢? –

+0

它得到的鏈接的href屬性點擊,如果'點擊',在href將是「第1頁」,然後在「頁面」被替換爲空,這讓數字「1」。 – adeneo

+0

好吧,以便自動獲得href我該怎麼做?它不是手動插入 –