2012-07-23 48 views
0

我正在試用我的第一個lightbox插件,並試圖找出如何處理設置導航控件。我知道它必須是一個簡單的解決方案,但我完全在意這一點。它支持html內容和圖像,並使用標準的rel屬性進行圖庫連接。我的問題是:如何根據rel?從1個圖像(或div)導航到另一個。jQuery/JavaScript按屬性設置數組

起初,我通過$(this).nextAll('[rel =「ExampleGallery」]')可以工作,但不幸的是,這並不是針對下一個。所以......我可能會完全偏離軌道,但是我現在要做的是如果循環調用插件的對象,檢測它們是否具有rel標記,然後如果它們將值推入動態創建的數組中圖庫名稱作爲數組名稱。然後,只需使用索引數組中通過對象瀏覽...

HTML

<img src="images/pic1.png" width="230px" height="215px" rel="Gallery1"/> 
<img src="images/pic2.png" width="230px" height="215px" rel="Gallery2"/> 
<img src="images/pic3.png" width="230px" height="215px" rel="Gallery1"/> 

ARRAY

Gallery1     Gallery2 

0 (ref to img tag 1)  0 (ref to img tag 2) 
1 (ref to img tag 3) 

再次,我覺得我這樣做不對,和對不起,如果這很好。我將如何去寫這個JS?

1-基於相對名稱動態創建數組 2-推對象數組中以便日後參考

非常感謝!

+0

所以,你要能夠遍歷所有具有類似名稱的圖片?或者每個人單獨或??我不太清楚你想如何設置。 – jeschafe 2012-07-23 00:40:41

+0

我想遍歷插件(上面3)調用的所有圖像,並根據它們的rel屬性值創建數組。然後將相應的對象推入正確的數組中。所以結果數組(Gallery 1,Gallery 2)將擁有正確的圖庫對象。 – Aaron 2012-07-23 00:42:37

+0

您使用哪個特定的lightbox插件? – jeschafe 2012-07-23 00:47:27

回答

2

我認爲你應該重新考慮你想用這個數據結構。但是簡單地收集圖像,這將工作:

var arrays = {}; 
$('img').each(function(){ 
    var arrayName = $(this).attr('rel'); 
    if(arrays.hasOwnProperty(arrayName)) { 
     arrays[arrayName].push(this); 
    } 
    else { 
     arrays[arrayName] = [this]; 
    } 
} 

底: arrays{ Gallery1: [img1, img3], Gallery2: [img2] }

+0

完美!這正是我所尋找的,謝謝:) – Aaron 2012-07-23 00:53:03