How to use SimplePagination jquery
Categories:
Mastering Pagination with jQuery SimplePagination.js

Learn how to effortlessly add client-side pagination to your web content using the lightweight and flexible jQuery SimplePagination.js plugin. This guide covers setup, configuration, and common use cases.
Pagination is a crucial feature for displaying large datasets in a user-friendly manner, preventing overwhelming users with too much information at once. While server-side pagination is common for large databases, client-side pagination is perfect for smaller datasets or when you want to avoid extra server requests. This article will guide you through implementing client-side pagination using the popular jQuery SimplePagination.js plugin, known for its simplicity and flexibility.
Getting Started: Setup and Basic Usage
To begin, you'll need to include jQuery and the SimplePagination.js plugin files in your HTML document. You can download the plugin from its GitHub repository or use a CDN. Once included, you'll need a container for your paginated content and a separate container where the pagination controls will be rendered.
<!DOCTYPE html>
<html>
<head>
<title>SimplePagination.js Example</title>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/simplePagination.js/1.6/simplePagination.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/simplePagination.js/1.6/jquery.simplePagination.min.js"></script>
<style>
#content-container { list-style: none; padding: 0; margin: 0; }
#content-container li { padding: 10px; border-bottom: 1px solid #eee; }
.pagination-container { margin-top: 20px; text-align: center; }
</style>
</head>
<body>
<h1>My Paginated Content</h1>
<ul id="content-container"></ul>
<div id="pagination-controls" class="pagination-container"></div>
<script>
$(document).ready(function() {
// Data to be paginated
var data = [];
for (var i = 1; i <= 100; i++) {
data.push('Item ' + i);
}
var itemsPerPage = 10;
var numberOfPages = Math.ceil(data.length / itemsPerPage);
$('#pagination-controls').pagination({
items: data.length,
itemsOnPage: itemsPerPage,
cssStyle: 'light-theme',
onPageClick: function(pageNumber) {
var start = (pageNumber - 1) * itemsPerPage;
var end = start + itemsPerPage;
var pageData = data.slice(start, end);
$('#content-container').empty();
$.each(pageData, function(index, item) {
$('#content-container').append('<li>' + item + '</li>');
});
}
});
// Trigger initial load for the first page
$('#pagination-controls').pagination('selectPage', 1);
});
</script>
</body>
</html>
Basic HTML structure and JavaScript for SimplePagination.js setup.
Understanding the Configuration Options
SimplePagination.js offers a variety of options to customize its behavior and appearance. The most common options include items
(total number of items), itemsOnPage
(how many items to display per page), cssStyle
(predefined themes), and onPageClick
(a callback function executed when a page number is clicked). Understanding these options is key to tailoring the pagination to your specific needs.
flowchart TD A[Initialize Pagination] --> B{Configuration Options} B --> C{items: Total Count} B --> D{itemsOnPage: Per Page} B --> E{cssStyle: Theme} B --> F{"onPageClick(pageNumber): Callback"} F --> G[Calculate Start/End Index] G --> H[Slice Data Array] H --> I[Update Content Container] I --> J[Render Pagination Controls]
Flowchart illustrating the SimplePagination.js configuration and page click logic.
$('#pagination-controls').pagination({
items: 100, // Total number of items
itemsOnPage: 10, // Number of items to display per page
pages: 10, // Total number of pages (can be calculated from items/itemsOnPage)
displayedPages: 5, // How many page numbers to display in the pagination control
edges: 2, // How many page numbers to display at the beginning and end
currentPage: 1, // The initial page to display
hrefTextPrefix: '#page-', // Prefix for href attribute of page links
cssStyle: 'compact-theme', // Another built-in theme
prevText: '«', // Text for the 'previous' button
nextText: '»', // Text for the 'next' button
onPageClick: function(pageNumber, event) {
// Your custom logic to load content for the selected page
console.log('Page ' + pageNumber + ' selected!');
// Example: loadContentForPage(pageNumber);
},
onInit: function() {
// Callback fired once when the pagination is initialized
console.log('Pagination initialized!');
}
});
Detailed configuration options for SimplePagination.js.
Advanced Customization and Event Handling
Beyond basic configuration, SimplePagination.js allows for more advanced customization. You can dynamically update the total number of items, change the current page programmatically, or even destroy and reinitialize the pagination. The onPageClick
callback is your primary tool for integrating the pagination with your content loading logic, whether it's slicing a local array or making an AJAX request.
onPageClick
function correctly handles the data slicing or AJAX calls to fetch the appropriate items for the selected page. Incorrect indexing can lead to missing or duplicate items.1. Update Total Items Dynamically
If your total number of items changes (e.g., after a search filter), you can update the pagination by calling $('#pagination-controls').pagination('updateItems', newTotalItems);
.
2. Select a Page Programmatically
To navigate to a specific page from your JavaScript code, use $('#pagination-controls').pagination('selectPage', pageNumber);
. This will trigger the onPageClick
callback.
3. Destroy and Reinitialize
If you need to completely change the pagination's configuration, it's often best to destroy the existing instance with $('#pagination-controls').pagination('destroy');
and then reinitialize it with new options.