Package available on npm
npm install bootpag Include plugin script in your html page
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/bootpag@5.0.0/dist/jquery.bootpag.min.js"></script> Then prepare empty html element which should contain pagination ( bootpag will create pagination list).
After page load init bootpag with number of total pages $('.my-element').bootpag({total: 15}) .
From now on you can listen for page changes $('.my-element').on("page", function(event, num){});
<!doctype html> <html> <head> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootpag@5.0.0/dist/jquery.bootpag.min.js"></script> </head> <body> <div id="content">Dynamic Content goes here</div> <div id="page-selection">Pagination goes here</div> <script> // init bootpag $('#page-selection').bootpag({ total: 10 }).on("page", function(event, /* page number here */ num){ // load content from server here and update DOM, for now just some text $("#content").html("Dynamic content loaded for page " + num); }); </script> </body> </html> Parameters $(element).bootpag({...})
total number of pages maxVisible maximum number of visible pages page page to show on start leaps next/prev buttons move over one page or maximum visible pages next text (default » ) prev text (default « ) href template for pagination links (default javascript:void(0); ) hrefVariable variable name in href template for page number (default {{number}} ) firstLastUse do we ant first and last (default true ) first name of first (default 'FIRST' ) last name of last (default 'LAST' ) wrapClass css class for wrap (default 'pagination' ) activeClass css class for active (default 'active' ) disabledClass css class for disabled (default 'disabled' ) nextClass css class for next (default 'next' ) prevClass css class for prev (default 'prev' ) lastClass css class for last (default 'last' ) firstClass css class for first (default 'first' ) itemClass css class added to every <li> (default 'page-item' ) linkClass css class added to every <a> (default 'page-link' ) Events available on bootpag object
page on page click event object num page number clicked $('.demo1').bootpag({ total: 5 }).on("page", function(event, num){ $(".content").html("Page " + num); // or some ajax content loading... // ... after content load -> change total to 10 $(this).bootpag({total: 10, maxVisible: 10}); }); $('.demo2').bootpag({ total: 23, page: 3, maxVisible: 10 }).on('page', function(event, num){ $(".content2").html("Page " + num); // or some ajax content loading... }); "#pro-page-{{number}}" . $('.demo3').bootpag({ total: 9, page: 5, maxVisible: 6, href: "#pro-page-{{number}}", leaps: false, next: 'next', prev: null }).on('page', function(event, num){ $(".content3").html("Page " + num); // or some ajax content loading... }); $('.demo4_top,.demo4_bottom').bootpag({ total: 50, page: 2, maxVisible: 5, leaps: true, firstLastUse: true, first: '<span aria-hidden="true">←</span>', last: '<span aria-hidden="true">→</span>', wrapClass: 'pagination', activeClass: 'active', disabledClass: 'disabled', nextClass: 'next', prevClass: 'prev', lastClass: 'last', firstClass: 'first' }).on("page", function(event, num){ $(".content4").html("Page " + num); // or some ajax content loading... });