jQuery()包装函数来实现数组元素分页的效果

在最近的一周里,需要一个中国站来搜索礼品小部件,在这个要求中有一个分页功能;具体的demo可以看到下图:



相应的js应用程序文件是相同的。页面后面的提供数据已经被埋没了,但是CSS显示:没有样式是隐藏后一个提供元素的。现在要分页现有的元素来实现分页效果,也就是通过元(。类)收集页面元素,然后实现分页功能。

根据传统的一般实践,jQuery可以编写如下:

复制代码代码如下所示:
var(=);需要实现分页的元素总数
var广播= 3;根据屏幕页面的宽度显示提供访问的数量:
VaR PageSize = parseInt(总 / / /收音机);获得总页数;
如果(总= 0 { %电台!)
PageSize + = 1;
}
无功currentpage = 1; / /当前页第一页
PageUp / /代码:
$(。LeftArrow,parentelem)。Bind(听到咔哒声,功能(e){)
VaR指标= currentpage-1;
如果(currentpage = = 1){
返回;
其他{ }
$(班),Css(显示器,不关);
无功elemindex =指数*无线电; / /指针数组开始显示元素
$(班),Eq(elemindex)。Css(显示',');
$(班),Eq(elemindex + 1)。Css(显示',');
$(班),Eq(elemindex + 2)。Css(显示',');
以上三个句子/代码可用(下)重写
/ / $(班),Eq(elemindex)。Css(显示)
(CSS) / /下(显示)。
(。CSS) / /下(显示);
currentpage =指数;
}
})
向后滚动代码:
$(。RightArrow,parentelem)。Bind(听到咔哒声,功能(e){)
VaR指标= currentpage + 1;
如果(currentpage = = PageSize){
返回;
其他{ }
$(班),Css(显示器,不关);
无功elemindex =指数*无线电; / /指针数组开始显示元素
$(.Class).Eq (elemIndex).Css ('display',' ');
$(班),Eq(elemindex + 1)。Css(显示',');
$(班),Eq(elemindex + 2)。Css(显示',');
以上三个句子/代码可用(下)重写
/ / $(班),Eq(elemindex)。Css(显示)
(CSS) / /下(显示)。
(。CSS) / /下(显示);
currentpage =指数;
}
})


你看,不,在返回的代码中,不管最后一页有1个报价,2个报价,或者全部3个报价,我使用相同的代码,没有任何判断。

复制代码代码如下所示:
$(班),Eq(elemindex)。Css(显示器,);
$(班),Eq(elemindex + 1)。Css(显示器,);
$(班),Eq(elemindex + 2)。Css(显示器,);


这3个语句连续调用。

也就是说,elemindex可能超越边界,这是elemindex > $(类)。长度。即使在这样的情况下,这类(。情商)(elemindex + 1)。Css(显示器)没有问题。浏览器不会报告错误。JS会照常执行,而最终的结果将显示完美。感谢由juery实现jQuery包装功能,如果elemindex > = $(类)。长度,$(,),Eq(elemindex + 1)返回一个空的jQuery元素,虽然它没有对应的DOM元素,但它仍然是一个jQuery对象,所以使用.css()方法不能出错,虽然页面,没有任何变化的影响;

通过这个例子,我们可以理解为什么jquey不匹配的元素将返回jQuery对象,而不是零,对分页操作数组的概念,提供了很大的便利,因为它避免了数组越界由于程序错误,导致js实现中断,简化了数组索引从判决在代码分页界限。