2010-04-01 131 views
3

我有這樣的代碼是:需要幫助的jQuery選擇

<ul class="gallery_demo_unstyled"> 
    <li class="active"><img src='001.jpg' /></li> 
    <li><img src='002.jpg' /></li> 
    <li><img src='003.jpg' /></li> 
    <li><img src='004.jpg' /></li> 
    <li><img src='005.jpg' /></li> 
    <li><img src='006.jpg' /></li> 
</ul> 

<div class="Paginator"> 
    <a href="../2/" class="Prev">&lt;&lt;</a> 
    <a href="../1/">1</a> 
    <a href="../2/">2</a> 
    <span class="this-page">3</span> 
    <a href="../4/">4</a> 
    <a href="../5/">5</a> 
    <a href="../4/" class="Next">&gt;&gt;</a> 
</div> 

<div class="Albums"><div class="AlbumsMenu"> 
<p><b>ALBUMS</b></p> 
    <p><a href="../../blackandwhite/1/" >blackandwhite</a></p> 
    <p><a href="../../color/1/" class='this-page'>>>color</a></p> 
    <p><a href="../../film/1/" >film</a></p> 
    <p><a href="../../digital/1/" >digital</a></p> 
    <p><a href="../../portraits/1/" >portraits</a></p> 
</div></div> 

...和一些JavaScript/jQuery的通過圖像允許週期(最高層li元素)回到第一個圖像最後一個後:

$$.nextSelector = function(selector) { 
return $(selector).is(':last-child') ? 
     $(selector).siblings(':first-child') : 
     $(selector).next(); 

}; 

當前頁面總是「這頁的」類(在我的情況跨度或p,但我可以改變,如果有必要)。

問題:我應該在我的代碼,以使最後的圖像後,進入下一個頁面,而不是通過頁面遍地循環一遍,最後一頁的下一張專輯之後的變化?在倒數第二張專輯的第一張專輯的首頁上的第一張圖片(或者只是停在那裏 - 並不在乎)?

+0

你怎麼更新圖像列表,以及一個畫廊裏的頁面?是否有更新'ul的ajax請求。當打開一個新頁面時,「gallery_demo_unstyled」,當新相冊打開時,「div.AlbumsMenu」? – Anurag 2010-04-01 00:46:49

+0

@anurag:這是galleria.js腳本。我通過django生成帶圖片列表,頁碼和專輯鏈接的html - 每個專輯頁面有一個html,並且在一個頁面內部[li class =「active」]是通過點擊大圖片動態更改的。演示在這裏:http://lomoportfolio.com/strangers.html例如,但現在它在一個頁面內循環。我希望它進入下一頁,然後是頁面上最後一張照片後面的下一張專輯。 – user63503 2010-04-01 02:44:02

回答

4

是這樣的:

function nextImage() 
{ 
    var li = $('#gallery_demo_unstyled li.active'); 

    if (li.is(':last-child')) { 
     nextPage(); 
    } else { 
     li.removeClass('active'); 
     li.next().addClass('active'); 
    } 
} 

function nextPage() 
{ 
    var next = $('div.Paginator a.Next'); 

    if (next.length == 0) { 
     nextAlbum(); 
    } else { 
     window.location = next.attr('href'); 
    } 
} 

function nextAlbum() 
{ 
    var this_album = $('div.AlbumsMenu p a.this-name'); 
    var p = this_album.parent(); 

    if (p.next().length == 0) { 
     return; 
    } 

    window.location = p.next().children('a').attr('href'); 
} 
+0

爲了使它工作,它需要返回選擇器,而不是真的在做所有的魔法。會考慮如何修改它。但是謝謝你! – user63503 2010-04-02 23:02:19