以下是一些代码,负责更改residentadvisor.net上轮播中的图片。点击'右键'箭头,图片发生变化,点导航向右移动,点击左边的'箭头,图片发生变化,向左移动。如果您在点导航系列的开头并单击左侧,则会结束,否则显示的图片将由您点击的任何点的data
属性确定。
n.attr("id") == "right" ? currentIndex == $("#slider li").size() -
1? currentIndex = 0 : currentIndex++ : n.attr("id") ==
"left" ? currentIndex == 0 ? currentIndex = $("#slider li")
.size() - 1 : currentIndex-- : currentIndex = n.attr("data-position");
我无法解决的问题是这段代码:currentIndex == $("#slider li").size() - 1?
如果滑块的currentIndex
位于列表的末尾,则突出显示的点导航将返回到索引位置0,但为什么通过检查大小来确定这一点,然后然后< / em>减去1?检查currentIndex
是否等于.size()
的结果是否有意义?但是,当我删除-1
点导航时,将在页面上消失,无论该间隔指定多长时间,再次显示在poisition 0之前。如果我将其更改为-2
,则点击导航会在第二个到最后一个点停止,然后再循环回来。用.size()
替换.length
会做同样的事情。
为什么 -1
的原因已被回答,但为什么.size()
和.length
不能按照我认为应该的方式运作?
答案 0 :(得分:2)
jQuery .size()
和.length
不是基于零的,因为它们计算列表中的元素数量。很自然地,计数将从1开始.InfinIndex是一个基于零的索引,可能是因为它是数组中的索引。在一个项目数组中,零将是第一个索引/节点,length-1将是最后一个索引/节点。
例如,对于后代:数组中的10个项目看起来像这样:
item[0]
...
item[9]
虽然数组的大小(或长度)是10,但数组索引的范围是0到9。
我不确定这是不是你问的问题,但似乎确实如此。