Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $.fn.jQueryPagination = function(selector,perPage = 10, currPage = 1,pageContainer = false){
- _mainContainer = $(this);
- _that = this;
- var perpage = perPage;
- var all = _mainContainer.find(selector).length;
- var currentPage = parseInt(currPage);
- var offset = 0;
- var firstPage = 1;
- var lastPage = Math.ceil(all / perpage);
- var adjacentCount = 2;
- var firstAdjacentPage = 0;
- var lastAdjacentPage = 0;
- _that.list = function(){
- offset = (currentPage - 1 ) * perpage;
- _mainContainer.find(selector).hide();
- for(var i = offset; i < (perpage * currentPage); i++){
- console.log(_mainContainer.find(selector).eq(i));
- _mainContainer.find(selector).eq(i).show();
- }
- _that.pagination();
- return _that;
- }
- _that.drawPag = function(){
- if(!pageContainer){
- if(_mainContainer.closest("table").length === 1){
- _mainContainer.closest("table").after('<div class="jQpagination"></div>');
- } else {
- _mainContainer.append('<div class="jQpagination"></div>');
- }
- }
- return _that;
- }
- _that.init = function(){
- _that.drawPag();
- _that.list();
- return _that;
- }
- _that.pagination = function(){
- var fillPages = (!pageContainer ? $(".jQpagination") : pageContainer);
- var pagination = '<ul>';
- var prevPage = parseInt(currentPage) - 1;
- var nextPage = parseInt(currentPage) + 1;
- if (currentPage <= adjacentCount + adjacentCount) {
- firstAdjacentPage = firstPage;
- lastAdjacentPage = Math.min(firstPage + adjacentCount + adjacentCount, lastPage);
- } else if (currentPage > lastPage - adjacentCount - adjacentCount) {
- lastAdjacentPage = lastPage;
- firstAdjacentPage = lastPage - adjacentCount - adjacentCount;
- } else {
- firstAdjacentPage = parseInt(currentPage) - adjacentCount;
- lastAdjacentPage = parseInt(currentPage) + adjacentCount;
- }
- if(currentPage > 1){
- pagination+='<li><a href="javascript:;" page="'+ prevPage +'">Prev</a></li>';
- }
- if(firstAdjacentPage > firstPage){
- pagination+='<li><a href="javascript:;" page="'+ firstPage +'">'+ firstPage +'</a></li>';
- if(firstAdjacentPage > firstPage + 1){
- pagination+='<li>...</li>';
- }
- }
- for(var i = firstAdjacentPage; i <= lastAdjacentPage; i++){
- pagination+='<li><a href="javascript:;" class="'+ ( i === parseInt(currentPage) ? 'active' : '') +'" page="'+ i +'">'+ i +'</a></li>';
- }
- if(lastAdjacentPage < lastPage){
- if(lastAdjacentPage < lastPage - 1){
- pagination+='<li>...</li>';
- }
- pagination+='<li><a href="javascript:;" page="'+ lastPage +'">'+ lastPage +'</a></li>';
- }
- if(currentPage < lastPage){
- pagination+='<li><a href="javascript:;" page="'+ nextPage +'">Next</a></li>';
- }
- pagination += '</ul>';
- if(firstPage === lastPage){
- fillPages.html("");
- } else {
- fillPages.html(pagination);
- }
- _that.appendEvents();
- return _that;
- }
- _that.appendEvents = function(){
- $(".jQpagination").find("a[page]").on("click",function(){
- currentPage = $(this).attr("page");
- _that.list();
- });
- return _that;
- };
- return _that;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement