jQuery分页是一种前端技术,用于将大量数据分割成多个页面显示,提高用户体验和页面性能。它通常与AJAX请求结合使用,实现无刷新分页效果。
// HTML结构
<div id="content"></div>
<div id="pagination"></div>
// JavaScript代码
$(document).ready(function() {
var currentPage = 1;
var itemsPerPage = 10;
var totalItems = 100; // 实际应用中应从服务器获取
function loadPage(page) {
$.ajax({
url: 'api/data',
type: 'GET',
data: { page: page, limit: itemsPerPage },
success: function(response) {
renderContent(response.data);
renderPagination(page, Math.ceil(totalItems/itemsPerPage));
}
});
}
function renderContent(data) {
var html = '';
data.forEach(function(item) {
html += '<div class="item">' + item.name + '</div>';
});
$('#content').html(html);
}
function renderPagination(current, totalPages) {
var html = '';
if(current > 1) {
html += '<a href="#" class="page-link" data-page="'+(current-1)+'">上一页</a>';
}
for(var i = 1; i <= totalPages; i++) {
html += '<a href="#" class="page-link '+(i === current ? 'active' : '')+'" data-page="'+i+'">'+i+'</a>';
}
if(current < totalPages) {
html += '<a href="#" class="page-link" data-page="'+(current+1)+'">下一页</a>';
}
$('#pagination').html(html);
}
$(document).on('click', '.page-link', function(e) {
e.preventDefault();
var page = $(this).data('page');
loadPage(page);
});
// 初始加载第一页
loadPage(1);
});
$(document).ready(function() {
var page = 1;
var loading = false;
function loadMore() {
if(loading) return;
loading = true;
$('#loading').show();
$.ajax({
url: 'api/data',
type: 'GET',
data: { page: page },
success: function(response) {
if(response.data.length > 0) {
appendContent(response.data);
page++;
} else {
$('#loading').text('没有更多数据了');
}
loading = false;
}
});
}
function appendContent(data) {
var html = '';
data.forEach(function(item) {
html += '<div class="item">' + item.name + '</div>';
});
$('#content').append(html);
}
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
loadMore();
}
});
// 初始加载
loadMore();
});
原因:通常是由于分页参数传递不正确或服务器端分页逻辑有问题。
解决方案:
原因:可能是DOM事件绑定失效或AJAX回调中未更新分页控件。
解决方案:
原因:大量DOM操作或频繁的AJAX请求。
解决方案:
原因:触摸事件与点击事件冲突。
解决方案:
通过合理实现jQuery分页,可以显著提升大数据量展示的用户体验和系统性能。
没有搜到相关的文章