使用:visible变量仅针对那些项目

use :visible variable to target only those items

本文关键字:那些 项目 visible 变量 使用      更新时间:2023-09-26

问题:我有一个jQuery var设置,如下所示:

var count = $("#gallery li:visible").length;
alert(count);

这将查找当前在页面上可见的所有李的图库。当触发分页时,数字会发生变化,因为人们可以选择类别。

我希望能够使用这个count来查看end_item的每个countaddClass的第三个项目(因为我在一行中有3个)

我的HTML:

<ul id="gallery">
    <li class="gallery_image" data-id="" data-type="">
        <img src=""/><div class="thumb_bg"></div>
        <img src="" data-original="" />
    </li>
    <li class="gallery_image" data-id="" data-type="">
        <img src=""/><div class="thumb_bg"></div>
        <img src="" data-original="" />
    </li>
    <li class="gallery_image" data-id="" data-type="">
        <img src=""/><div class="thumb_bg"></div>
        <img src="" data-original="" />
    </li>
    <li class="gallery_image" data-id="" data-type="">
        <img src=""/><div class="thumb_bg"></div>
        <img src="" data-original="" />
    </li>
</ul>

当前正在尝试:

$('#gallery li').each( function(count) {
    if( count % 3 != 2 )
    return
    $(this).addClass('end')
})

我不会在页面上有确切的3,它可能是2-12之间的任何东西,所以我需要找到目前可见的的每三个项目

编辑:我的代码似乎有效。。。然而,仅当页面首次加载时。如果我在我的库中使用了一个过滤器项目,代码会计算隐藏的项目,即使我在单击过滤器后重新调用jQuery。

尝试一下:

小提琴

$('#gallery li:visible').each(function(i) { 
    if (i % 3 == 2) $(this).addClass('end_item');
});

当你加载更多时,一定要这样做:

$('.end_item').removeClass('end_item');
//then execute code from above

我错过了它,但可能对有用

$('#gallery li:visible').filter(function(i){ return i % 3 == 2; }).addClass('end');

演示

$('#gallery li:visible').each( function(count) {
      if( (count + 1) % 3 == 0 ) {
        $(this).addClass('end');
      }
});

http://jsfiddle.net/mGZmy/1/