You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

100 lines
2.9 KiB

  1. //分页插件
  2. /**
  3. 2014-08-05 ch
  4. **/
  5. (function($){
  6. var ms = {
  7. init:function(obj,args){
  8. return (function(){
  9. ms.fillHtml(obj,args);
  10. ms.bindEvent(obj,args);
  11. })();
  12. },
  13. //填充html
  14. fillHtml:function(obj,args){
  15. return (function(){
  16. obj.empty();
  17. //上一页
  18. if(args.current > 1){
  19. obj.append('<a href="javascript:;" class="prevPage">上一页</a>');
  20. }else{
  21. obj.remove('.prevPage');
  22. obj.append('<span class="disabled">上一页</span>');
  23. }
  24. //中间页码
  25. if(args.current != 1 && args.current >= 4 && args.pageCount != 4){
  26. obj.append('<a href="javascript:;" class="tcdNumber">'+1+'</a>');
  27. }
  28. if(args.current-2 > 2 && args.current <= args.pageCount && args.pageCount > 5){
  29. obj.append('<span>...</span>');
  30. }
  31. var start = args.current -2,end = args.current+2;
  32. if((start > 1 && args.current < 4)||args.current == 1){
  33. end++;
  34. }
  35. if(args.current > args.pageCount-4 && args.current >= args.pageCount){
  36. start--;
  37. }
  38. for (;start <= end; start++) {
  39. if(start <= args.pageCount && start >= 1){
  40. if(start != args.current){
  41. obj.append('<a href="javascript:;" class="tcdNumber">'+ start +'</a>');
  42. }else{
  43. obj.append('<span class="current">'+ start +'</span>');
  44. }
  45. }
  46. }
  47. if(args.current + 2 < args.pageCount - 1 && args.current >= 1 && args.pageCount > 5){
  48. obj.append('<span>...</span>');
  49. }
  50. if(args.current != args.pageCount && args.current < args.pageCount -2 && args.pageCount != 4){
  51. obj.append('<a href="javascript:;" class="tcdNumber">'+args.pageCount+'</a>');
  52. }
  53. //下一页
  54. if(args.current < args.pageCount){
  55. obj.append('<a href="javascript:;" class="nextPage">下一页</a>');
  56. }else{
  57. obj.remove('.nextPage');
  58. obj.append('<span class="disabled">下一页</span>');
  59. }
  60. })();
  61. },
  62. //绑定事件
  63. bindEvent:function(obj,args){
  64. return (function(){
  65. obj.on("click","a.tcdNumber",function(){
  66. var current = parseInt($(this).text());
  67. ms.fillHtml(obj,{"current":current,"pageCount":args.pageCount});
  68. if(typeof(args.backFn)=="function"){
  69. args.backFn(current);
  70. }
  71. });
  72. //上一页
  73. obj.on("click","a.prevPage",function(){
  74. var current = parseInt(obj.children("span.current").text());
  75. ms.fillHtml(obj,{"current":current-1,"pageCount":args.pageCount});
  76. if(typeof(args.backFn)=="function"){
  77. args.backFn(current-1);
  78. }
  79. });
  80. //下一页
  81. obj.on("click","a.nextPage",function(){
  82. var current = parseInt(obj.children("span.current").text());
  83. ms.fillHtml(obj,{"current":current+1,"pageCount":args.pageCount});
  84. if(typeof(args.backFn)=="function"){
  85. args.backFn(current+1);
  86. }
  87. });
  88. })();
  89. }
  90. }
  91. $.fn.createPage = function(options){
  92. var args = $.extend({
  93. pageCount : 10,
  94. current : 1,
  95. backFn : function(){}
  96. },options);
  97. ms.init(this,args);
  98. }
  99. })(jQuery);
  100. //代码整理:懒人之家 www.lanrenzhijia.com