Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

jquery.page.js 4.6 KiB

3 år sedan
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. //分页插件
  2. /**
  3. * 2015-11-09
  4. * @author by futural
  5. */
  6. (function($){
  7. var ms = {
  8. init:function(obj,args){
  9. return (function(){
  10. ms.fillHtml(obj,args);
  11. ms.bindEvent(obj,args);
  12. })();
  13. },
  14. //填充html
  15. fillHtml:function(obj,args){
  16. return (function(){
  17. obj.empty();
  18. //上一页
  19. if(args.current > 1){
  20. obj.append('<a href="javascript:;" class="prevPage"><上一页</a>');
  21. }else{
  22. obj.remove('.prevPage');
  23. obj.append('<span class="disabled"><上一页</span>');
  24. }
  25. //中间页码
  26. if(args.current != 1 && args.current >= 4 && args.pageCount != 4){
  27. obj.append('<a href="javascript:;" class="tcdNumber">'+1+'</a>');
  28. }
  29. if(args.current-2 > 2 && args.current <= args.pageCount && args.pageCount > 5){
  30. obj.append('<span>...</span>');
  31. }
  32. var start = args.current -2,end = args.current+2;
  33. if((start > 1 && args.current < 4)||args.current == 1){
  34. end++;
  35. }
  36. if(args.current > args.pageCount-4 && args.current >= args.pageCount){
  37. start--;
  38. }
  39. for (;start <= end; start++) {
  40. if(start <= args.pageCount && start >= 1){
  41. if(start != args.current){
  42. obj.append('<a href="javascript:;" class="tcdNumber">'+ start +'</a>');
  43. }else{
  44. obj.append('<span class="current">'+ start +'</span>');
  45. }
  46. }
  47. }
  48. if(args.current + 2 < args.pageCount - 1 && args.current >= 1 && args.pageCount > 5){
  49. obj.append('<span>...</span>');
  50. }
  51. if(args.current != args.pageCount && args.current < args.pageCount -2 && args.pageCount != 4){
  52. obj.append('<a href="javascript:;" class="tcdNumber">'+args.pageCount+'</a>');
  53. }
  54. //下一页
  55. if(args.current < args.pageCount){
  56. obj.append('<a href="javascript:;" class="nextPage">下一页></a>');
  57. }else{
  58. obj.remove('.nextPage');
  59. obj.append('<span class="disabled">下一页></span>');
  60. }
  61. obj.append('<span class="pagecount">共'+args.pageCount+'页</span>');
  62. //跳转页码
  63. if(args.turndown == 'true'){
  64. obj.append('<span class="countYe">到第<input type="text" onkeyup="this.value=this.value.replace(/\\D/g,\'\')" onafterpaste="this.value=this.value.replace(/\\D/g,\'\')" maxlength='+args.pageCount.toString().length+'>页<a href="javascript:;" class="turndown">确定</a><span>');
  65. }
  66. })();
  67. },
  68. //绑定事件
  69. bindEvent:function(obj,args){
  70. return (function(){
  71. obj.off("click","a.tcdNumber"); //移除原有事件 避免重复绑定
  72. obj.on("click","a.tcdNumber",function(){
  73. var current = parseInt($(this).text());
  74. ms.fillHtml(obj,{"current":current,"pageCount":args.pageCount,"turndown":args.turndown});
  75. if(typeof(args.backFn)=="function"){
  76. args.backFn(current);
  77. }
  78. });
  79. //上一页
  80. obj.off("click","a.prevPage"); //移除原有事件 避免重复绑定
  81. obj.on("click","a.prevPage",function(){
  82. var current = parseInt(obj.children("span.current").text());
  83. ms.fillHtml(obj,{"current":current-1,"pageCount":args.pageCount,"turndown":args.turndown});
  84. if(typeof(args.backFn)=="function"){
  85. args.backFn(current-1);
  86. }
  87. });
  88. //下一页
  89. obj.off("click","a.nextPage"); //移除原有事件 避免重复绑定
  90. obj.on("click","a.nextPage",function(){
  91. var current = parseInt(obj.children("span.current").text());
  92. ms.fillHtml(obj,{"current":current+1,"pageCount":args.pageCount,"turndown":args.turndown});
  93. if(typeof(args.backFn)=="function"){
  94. args.backFn(current+1);
  95. }
  96. });
  97. //跳转
  98. obj.off("click","a.turndown"); //移除原有事件 避免重复绑定
  99. obj.on("click","a.turndown",function(){
  100. var page = $("span.countYe input").val();
  101. if(page.trim()==""){page=1;}
  102. page=parseInt(page);
  103. if(page==0){page=1;}
  104. if (page > args.pageCount) {
  105. ZZAlertInfo("您的输入有误,请重新输入!");
  106. $("span.countYe input").val('');
  107. $("span.countYe input").focus();
  108. return;
  109. }
  110. ms.fillHtml(obj,{"current":page,"pageCount":args.pageCount,"turndown":args.turndown});
  111. if(typeof(args.backFn)=="function"){
  112. args.backFn(page);
  113. }
  114. // var page = parseInt($("span.countYe input").val());
  115. // if (page > args.pageCount) {
  116. // ZZAlertInfo("您的输入有误,请重新输入!");
  117. // return;
  118. // }
  119. // ms.fillHtml(obj,{"current":page,"pageCount":args.pageCount,"turndown":args.turndown});
  120. // if(typeof(args.backFn)=="function"){
  121. // args.backFn(page);
  122. // }
  123. });
  124. })();
  125. }
  126. }
  127. $.fn.createPage = function(options){
  128. var args = $.extend({
  129. pageCount : 10,
  130. current : 1,
  131. turndown:true,
  132. backFn : function(){}
  133. },options);
  134. ms.init(this,args);
  135. }
  136. })(jQuery);