我使用的是我在这里找到的jQuery插件:http://tutorialzine.com/2011/03/photography-portfolio-shutter-effect/,除了我稍微改了一下。
它仍然按照预期的方式完美运行,但我添加了一个下一个按钮,用户cna用来跳到下一个图像,然后暂停一个循环的间隔,以便不会改变下一张图片太快了。
然而,我的问题在于一个明显的按钮。我不知道该怎么做,所以我添加了一个变量
var positionInt
这是最后一个列表项的位置,所以我知道我在列表中的位置。
如何将此项与此行创建的li对象一起使用:
var container = $('#container'),
li = container.find('li');
打开正确的li项?
另外,如何找到li对象的长度?我尝试过li.size(),li.count()和li.length,但都没有。
或者是否有一种方法只使用.find()方法在当前可见的项目之前打开li项目?这就是它最初去前进的方式:
li.filter(':visible:first').hide(); // Hid the only visible li
if(li.filter(':visible').length == 0){
li.show(); // if nothing is visible load a li (Im not really sure what this is pointing at, but it loads the next li)
}
干杯
答案 0 :(得分:13)
您可以获得li
的数量:
var nr_li = $("#container ul li").length;
如果你知道当前使用的<li>
的当前索引,你可以通过以下方式获得前一个索引:
$prev_li = $("#container ul li:eq(" + (index-1) + ")");
请确保您对index-1
进行了一些计算和检查,以确保您不会超出界限并尝试使用不存在的元素。
你可以做的另一件事是循环遍历<li>
并将它们中的每一个添加到一个数组中。然后,您可以从阵列中拉出前一个。
var array_li = new Array();
$('#container li').each(function() {
array_li.push($(this));
});
答案 1 :(得分:5)
length
和size()
都可以帮助您计算jquery对象中元素的数量。
我发现length
被更频繁地使用,因为size()
调用的开销无需在内部使用length
。
你需要定义“不工作”的含义,因为这两种方法都是完全有效的。