-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsimplePagination.js
85 lines (48 loc) · 1.82 KB
/
simplePagination.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
(function( $ ){
///
$.fn.simplePagination = function( options ) {
var pagedItemContainer = this.selector;
var settings = $.extend( {
'transition' : 0,
'pagedItem' : '.pagedItem',
'navContainer' : '#navContainer',
'itemsPerPage' : 10
}, options);
return this.each(function() {
var transition = settings.transition;
var pagedItem = $(settings.pagedItem);
var navContainer = $(settings.navContainer);
var itemsPerPage = settings.itemsPerPage;
var listes = $(pagedItem,pagedItemContainer);
var totalItems = listes.length;
var numberOfPages = Math.ceil(totalItems/itemsPerPage);
$(pagedItem,pagedItemContainer).hide();
// page une
listes.slice(0, itemsPerPage).addClass("page1 pageVisible").show();
// autres page
for(i=1;i<numberOfPages+1;i++){
listes.slice(i*itemsPerPage, (i*itemsPerPage)+itemsPerPage).addClass("page"+(i+1));
}
var htmlNavigation = '';
var currentLink = 1;
htmlNavigation += '<a class="pageLink active link0" href="#" rel="page1">1</a>';
while(numberOfPages > currentLink){
htmlNavigation += '<a class="pageLink link'+currentLink+'" href="#" rel="page'+(currentLink + 1)+'">'+ (currentLink + 1) +'</a>';
currentLink++;
}
if(numberOfPages>1)
navContainer.html(htmlNavigation);
$('a.pageLink',navContainer).on('click',function(e){
e.preventDefault();
var current = $('a.link'+$(this).index(),navContainer);
if(!current.hasClass('active')){
$('a.pageLink',navContainer).removeClass('active');
current.each(function(){$(this).addClass('active');});
nextpage = $(this).attr('rel');
$('.pageVisible').hide(transition).removeClass('pageVisible');
$('.'+nextpage).addClass('pageVisible').show(transition);
}
})
});
};
})( jQuery );