Witam,

Potrzebuję stworzyć stronicowanie tabeli posiadającej około 80 pozycji.

Skrypt pobrałem z stąd:
http://designconcept.webdev20.pl/articles/...wania-w-jquery/

natomiast tutaj jest stronicowanie po <p>

zmieniłem lekko kod na tr usunąłem children(), ale wyskakuje mi jeszcze w jednym miejscu błąd:

  1. jQuery(document).ready(function() {
  2. $('#kontrahent_search tr').pagination();
  3. });
  4. jQuery.fn.pagination = function(options){
  5. var $options = jQuery.extend({}, jQuery.fn.pagination.defaults, options);
  6. var perpage = $options.perpage;
  7. var offset = $options.offset;
  8. var prevnext = $options.prevnextEnable;
  9. var nav = $options.pages_nav;
  10. var item = jQuery(this);
  11. allItems = item.length;
  12. alert(allItems);
  13. if(allItems%perpage === 0)
  14. {
  15. lastPage = parseInt(allItems/perpage,10);
  16. }
  17. else
  18. {
  19. lastPage = parseInt(allItems/perpage,10)+1;
  20. }
  21. item.hide();
  22. item.slice(0,perpage).fadeIn('slow');
  23. if(nav==true)
  24. {
  25. item.append('<div class="pages_nav"></div>');
  26. create_nav(1,lastPage);
  27. }
  28. function create_nav(page,lastpage)
  29. {
  30. item.find('div.pages_nav').html('');
  31. var act = '';
  32. var act2 = '';
  33. var act3 = '';
  34. if(page > 0 && page <= lastpage)
  35. {
  36. if(perpage < allItems)
  37. {
  38. if(prevnext)
  39. {
  40. if(page > 1)
  41. {
  42. item.find('div.pages_nav').append('<a class="pages" rel="page'+(page-1)+'">Prev</a> ');
  43. }
  44. }
  45. if(page==1)
  46. {
  47. act = ' active';
  48. }
  49. item.find('div.pages_nav').append('<a class="pages'+act+'" rel="page1">1</a> ');
  50. if(page - offset > 2)
  51. {
  52. item.find('div.pages_nav').append(' ... ');
  53. }
  54. var ar = [];
  55. for(i= (page - offset);i<=page + offset;i++)
  56. {
  57. if(i <= 1)
  58. {
  59. continue;
  60. }
  61. if(i >= lastpage)
  62. {
  63. continue;
  64. }
  65. if(i==page)
  66. {
  67. act2 = ' active';
  68. }
  69. else
  70. {
  71. act2 = '';
  72. }
  73. item.find('div.pages_nav').append('<a class="pages'+act2+'" rel="page'+i+'">'+i+'</a> ');
  74. }
  75. if(page < lastpage - offset-1)
  76. {
  77. item.find('div.pages_nav').append(' ... ');
  78. }
  79. if(page==lastpage)
  80. {
  81. act3 = ' active';
  82. }
  83. item.find('div.pages_nav').append('<a class="pages'+act3+'" rel="page'+lastpage+'">'+lastpage+'</a> ');
  84. if(prevnext)
  85. {
  86. if(page < lastpage)
  87. {
  88. item.find('div.pages_nav').append('<a class="pages" rel="page'+(page+1)+'">Next</a> ');
  89. }
  90. }
  91. }
  92. }
  93. }
  94. jQuery('a.pages:first').addClass('active');
  95. item.find('div.pages_nav').find('a').on('click',function(){
  96. var pn = parseInt(jQuery(this).attr('rel').substr(4),10);
  97. var t = (pn-1)*perpage;
  98. var item = item.children(':not(div.pages_nav)');
  99. item.hide();
  100. item.slice(t,t + perpage).fadeIn('slow');
  101. if(nav==true)
  102. {
  103. create_nav(pn,lastPage);
  104. }
  105. return false;
  106. });
  107. };
  108. jQuery.fn.pagination.defaults = {
  109. perpage: 5,
  110. offset: 2,
  111. prevnextEnable: false,
  112. pages_nav: true};
  113.  


Generalnie wszystko jest ok podzieliło mi na to domyślne 5 pokazało się również cyfry do przejścia na następną stronę. Dziwne ponieważ na końcu każdego tr. dodatkowo klikanie w nie nic nie zmienia.

Błąd pokazuje tutaj: Cannot call method 'children' of undefined
var item = item.children(':not(div.pages_nav)');