Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.06 KB | None | 0 0
  1. $.fn.jQueryPagination = function(selector,perPage = 10, currPage = 1,pageContainer = false){
  2. _mainContainer = $(this);
  3. _that = this;
  4. var perpage = perPage;
  5. var all = _mainContainer.find(selector).length;
  6. var currentPage = parseInt(currPage);
  7. var offset = 0;
  8. var firstPage = 1;
  9. var lastPage = Math.ceil(all / perpage);
  10. var adjacentCount = 2;
  11. var firstAdjacentPage = 0;
  12. var lastAdjacentPage = 0;
  13. _that.list = function(){
  14. offset = (currentPage - 1 ) * perpage;
  15. _mainContainer.find(selector).hide();
  16. for(var i = offset; i < (perpage * currentPage); i++){
  17. console.log(_mainContainer.find(selector).eq(i));
  18. _mainContainer.find(selector).eq(i).show();
  19. }
  20. _that.pagination();
  21. return _that;
  22. }
  23. _that.drawPag = function(){
  24. if(!pageContainer){
  25. if(_mainContainer.closest("table").length === 1){
  26. _mainContainer.closest("table").after('<div class="jQpagination"></div>');
  27. } else {
  28. _mainContainer.append('<div class="jQpagination"></div>');
  29. }
  30. }
  31. return _that;
  32. }
  33. _that.init = function(){
  34. _that.drawPag();
  35. _that.list();
  36. return _that;
  37. }
  38. _that.pagination = function(){
  39. var fillPages = (!pageContainer ? $(".jQpagination") : pageContainer);
  40. var pagination = '<ul>';
  41. var prevPage = parseInt(currentPage) - 1;
  42. var nextPage = parseInt(currentPage) + 1;
  43. if (currentPage <= adjacentCount + adjacentCount) {
  44. firstAdjacentPage = firstPage;
  45. lastAdjacentPage = Math.min(firstPage + adjacentCount + adjacentCount, lastPage);
  46. } else if (currentPage > lastPage - adjacentCount - adjacentCount) {
  47. lastAdjacentPage = lastPage;
  48. firstAdjacentPage = lastPage - adjacentCount - adjacentCount;
  49. } else {
  50. firstAdjacentPage = parseInt(currentPage) - adjacentCount;
  51. lastAdjacentPage = parseInt(currentPage) + adjacentCount;
  52. }
  53. if(currentPage > 1){
  54. pagination+='<li><a href="javascript:;" page="'+ prevPage +'">Prev</a></li>';
  55. }
  56. if(firstAdjacentPage > firstPage){
  57. pagination+='<li><a href="javascript:;" page="'+ firstPage +'">'+ firstPage +'</a></li>';
  58. if(firstAdjacentPage > firstPage + 1){
  59. pagination+='<li>...</li>';
  60. }
  61. }
  62. for(var i = firstAdjacentPage; i <= lastAdjacentPage; i++){
  63. pagination+='<li><a href="javascript:;" class="'+ ( i === parseInt(currentPage) ? 'active' : '') +'" page="'+ i +'">'+ i +'</a></li>';
  64. }
  65. if(lastAdjacentPage < lastPage){
  66. if(lastAdjacentPage < lastPage - 1){
  67. pagination+='<li>...</li>';
  68. }
  69. pagination+='<li><a href="javascript:;" page="'+ lastPage +'">'+ lastPage +'</a></li>';
  70. }
  71. if(currentPage < lastPage){
  72. pagination+='<li><a href="javascript:;" page="'+ nextPage +'">Next</a></li>';
  73. }
  74. pagination += '</ul>';
  75. if(firstPage === lastPage){
  76. fillPages.html("");
  77. } else {
  78. fillPages.html(pagination);
  79. }
  80.  
  81. _that.appendEvents();
  82. return _that;
  83. }
  84. _that.appendEvents = function(){
  85. $(".jQpagination").find("a[page]").on("click",function(){
  86. currentPage = $(this).attr("page");
  87. _that.list();
  88. });
  89. return _that;
  90. };
  91. return _that;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement