2010-04-01 90 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