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:
jQuery(document).ready(function() { $('#kontrahent_search tr').pagination(); }); jQuery.fn.pagination = function(options){ var $options = jQuery.extend({}, jQuery.fn.pagination.defaults, options); var perpage = $options.perpage; var offset = $options.offset; var prevnext = $options.prevnextEnable; var nav = $options.pages_nav; var item = jQuery(this); allItems = item.length; alert(allItems); if(allItems%perpage === 0) { lastPage = parseInt(allItems/perpage,10); } else { lastPage = parseInt(allItems/perpage,10)+1; } item.hide(); item.slice(0,perpage).fadeIn('slow'); if(nav==true) { item.append('<div class="pages_nav"></div>'); create_nav(1,lastPage); } function create_nav(page,lastpage) { item.find('div.pages_nav').html(''); var act = ''; var act2 = ''; var act3 = ''; if(page > 0 && page <= lastpage) { if(perpage < allItems) { if(prevnext) { if(page > 1) { item.find('div.pages_nav').append('<a class="pages" rel="page'+(page-1)+'">Prev</a> '); } } if(page==1) { act = ' active'; } item.find('div.pages_nav').append('<a class="pages'+act+'" rel="page1">1</a> '); if(page - offset > 2) { item.find('div.pages_nav').append(' ... '); } var ar = []; for(i= (page - offset);i<=page + offset;i++) { if(i <= 1) { continue; } if(i >= lastpage) { continue; } if(i==page) { act2 = ' active'; } else { act2 = ''; } item.find('div.pages_nav').append('<a class="pages'+act2+'" rel="page'+i+'">'+i+'</a> '); } if(page < lastpage - offset-1) { item.find('div.pages_nav').append(' ... '); } if(page==lastpage) { act3 = ' active'; } item.find('div.pages_nav').append('<a class="pages'+act3+'" rel="page'+lastpage+'">'+lastpage+'</a> '); if(prevnext) { if(page < lastpage) { item.find('div.pages_nav').append('<a class="pages" rel="page'+(page+1)+'">Next</a> '); } } } } } jQuery('a.pages:first').addClass('active'); item.find('div.pages_nav').find('a').on('click',function(){ var t = (pn-1)*perpage; var item = item.children(':not(div.pages_nav)'); item.hide(); item.slice(t,t + perpage).fadeIn('slow'); if(nav==true) { create_nav(pn,lastPage); } return false; }); }; jQuery.fn.pagination.defaults = { perpage: 5, offset: 2, prevnextEnable: false, pages_nav: true};
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)');