我正在使用this pagination plugin。
在他的解释的底部,作者提到:
如果要在同一页面上创建多个分页,请进入 请注意,此插件使用ID来定位您需要的控制按钮 为每个分页定义控件ID参数。
在我的页面上,我定义了两个控件:
1.
$('#port').easyPaginate({
step:2
});
2.
$('#blog_posts').easyPaginate({
step:1
});
仅在第一个id='port'
工作。
有没有人对如何让它发挥作用有任何想法?
以下是为方便起见的脚本:
(function($) {
$.fn.easyPaginate = function(options){
var defaults = {
step: 4,
delay: 100,
numeric: true,
nextprev: true,
auto:false,
pause:4000,
clickstop:true,
controls: 'pagination',
current: 'current'
};
var options = $.extend(defaults, options);
var step = options.step;
var lower, upper;
var children = $(this).children();
var count = children.length;
var obj, next, prev;
var page = 1;
var timeout;
var clicked = false;
function show(){
clearTimeout(timeout);
lower = ((page-1) * step);
upper = lower+step;
$(children).each(function(i){
var child = $(this);
child.hide();
if(i>=lower && i<upper){ setTimeout(function(){ child.fadeIn('fast') }, ( i-( Math.floor(i/step) * step) )*options.delay ); }
if(options.nextprev){
if(upper >= count) { next.fadeOut('fast'); } else { next.fadeIn('fast').css({'display':'inline-block'}); };
if(lower >= 1) { prev.fadeIn('fast').css({'display':'inline-block'}); } else { prev.fadeOut('fast'); };
};
});
$('li','#'+ options.controls).removeClass(options.current);
$('li[data-index="'+page+'"]','#'+ options.controls).addClass(options.current);
if(options.auto){
if(options.clickstop && clicked){}else{ timeout = setTimeout(auto,options.pause); };
};
};
function auto(){
if(upper <= count){ page++; show(); }
};
this.each(function(){
obj = this;
if(count>step){
var ol;
var pages = Math.floor(count/step);
if((count/step) > pages) pages++;
ol = $('<ol id="'+ options.controls +'"></ol>').insertAfter(obj);
if(options.nextprev){
prev = $('<li class="prev">« Previous</li>')
.hide()
.appendTo(ol)
.click(function(){
clicked = true;
page--;
show();
});
};
if(options.numeric){
for(var i=1;i<=pages;i++){
$('<li data-index="'+ i +'">'+ i +'</li>')
.appendTo(ol)
.click(function(){
clicked = true;
page = $(this).attr('data-index');
show();
});
};
};
if(options.nextprev){
next = $('<li class="next">Next »</li>')
.hide()
.appendTo(ol)
.click(function(){
clicked = true;
page++;
show();
});
};
show();
};
});
};
})(jQuery);
答案 0 :(得分:0)
使用JQuery,创建一个循环通过要分页的列表的函数。用普通类标记它们,以确保您没有选择页面上的所有列表。
HTML
<div id="test_1" class="paginateMe">
<ul>
</ul>
<div class="clear"></div>
</div>
<div id="test_2" class="paginateMe">
<ul>
</ul>
<div class="clear"></div>
</div>
JS:
$('div.paginateMe').each(function(index, element) {
$this = $('#'+$(this).attr('id')+' ul');
$this.easyPaginate({ step:1 });
});
您也可以使用普通类来定位UL,而不是像上面那样将其嵌套在DIV中。
答案 1 :(得分:0)
我以不同的方式解决了
$('ul.easypagination1').easyPaginate({
step:20,
delay:0,
controls:'easy-pagination-1'
});
$('ul.easypagination2').easyPaginate({
step:20,
delay:0,
controls:'easy-pagination-2'
});
它有效,但你必须放更多的代码和更多的CSS,我尝试了opanitch的代码,但它不适合我,现在我在jquery 1.7.2 ...不知道。< / p>