首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

jQuery Pagination 分頁插件增強版:新增首頁/尾頁/頁碼跳轉功能完整實戰

     編輯:Java 綜合教學

插件特性

  • 基於 jQuery Pagination 二次開發,新增「首頁」「尾頁」「頁碼輸入跳轉」三大功能。
  • 保留原插件核心參數:items_per_page、num_edge_entries、num_display_entries、callback。
  • 相依:jquery.js、pagination.js、pagination.css。

資源下載

百度網盤:https://pan.baidu.com/s/1nvaq99R 密碼:9nfb (含增強版 JS/CSS)。

前端頁面整合

HTML 結構

<div class="clearbox">
  <div class="x-box">
    <h2><a>用戶列表</a></h2>
    <table id="listData"></table>
  </div>
  <div id="Pagination" class="pagination"></div> <!-- 分頁容器 -->
</div>

JavaScript 邏輯

<script type="text/javascript">
$(document).ready(function() {
    getDataList(0, null); // 初始化載入第 1 頁
});

var rows = 10;           // 每頁條數
var page = 1;            // 當前頁 (內部用)
var initFlag = true;     // 分頁插件只初始化一次

function getDataList(currPage, jq) {
    $.ajax({
        url: "page",
        type: "post",
        dataType: 'json',
        data: { rows: rows, page: currPage + 1 }, // 插件 currPage 從 0 開始,後端從 1 開始
        contentType: "application/x-www-form-urlencoded; charset=utf-8",
        success: function(response) {
            if (response.result && response.data && response.total > 0) {
                if (initFlag) {
                    $("#Pagination").pagination(response.total, {
                        items_per_page: rows,
                        num_edge_entries: 1,      // 邊緣顯示 1 頁
                        num_display_entries: 8,   // 主體顯示 8 頁
                        callback: getDataList     // 頁碼點擊回調
                    });
                    initFlag = false;
                }
                loadDataList(response.data);
            } else {
                $("#listData").html("<tr><td colspan='3'>暫無數據</td></tr>");
            }
        }
    });
}

function loadDataList(listData) {
    var html = "<tr class='t-header'>" +
        "<td>頭像</td>" +
        "<td>姓名</td>" +
        "<td>密碼</td>" +
        "</tr>";
    $("#listData").html(html); // 清空重建表頭

    for (var i = 0; i < listData.length; i++) {
        var n = listData[i];
        html = "<tr>" +
            "<td><img src='getphoto?unid=" + n.uuid +
            "' onerror=\"this.src='resources/img/default.png'\" " +
            "style='width:48px;height:48px;border-radius:48px;'/></td>" +
            "<td>" + n.username + "</td>" +
            "<td>" + n.password + "</td>" +
            "</tr>";
        $("#listData").append(html);
    }
}
</script>

後端分頁接口 (Spring MVC)

@ResponseBody
@RequestMapping("page")
public Map page(HttpServletRequest request) {
    int total = userService.getTotal();                    // 總記錄數
    int page = Integer.parseInt(request.getParameter("page")); // 當前頁 (1-based)
    int rows = Integer.parseInt(request.getParameter("rows")); // 每頁大小
    List data = userService.getCurrentPage((page - 1) * rows, rows);
    boolean result = (data != null && !data.isEmpty());

    Map map = new HashMap<>();
    map.put("data", data);
    map.put("total", total);
    map.put("result", result);
    return map;
}

效果展示

分頁效果圖:含首頁、尾頁、頁碼輸入框、跳轉按鈕

增強版核心修改點 (JS 內部)

  • 在 draw() 方法中插入首頁/尾頁按鈕:<a class='first'>首頁</a>、<a class='last'>尾頁</a>。
  • 新增跳轉輸入框:<input type='text' class='page-input'><button class='go-btn'>跳轉</button>。
  • 綁定點擊事件:首頁 → selectPage(0)、尾頁 → selectPage(totalPages-1)、跳轉 → 解析輸入值並 selectPage(val-1)。
  • CSS 新增 .first/.last/.page-input/.go-btn 樣式,保持原風格。

常見問題

總結

在 jQuery Pagination 基礎上增加首頁/尾頁/跳轉,僅需修改 JS 繪製邏輯與 CSS,零侵入後端接口。適用於傳統 jQuery + Spring MVC 專案快速構建完整分頁體驗,亦可作為前端分頁組件選型參考。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
現象原因解決
分頁不顯示total=0 或 data 為空檢查後端返回 total/data 字段名、數據庫是否有數據
點擊頁碼無反應callback 未正確綁定 / JS 錯誤F12 Console 看報錯、確認 pagination.js 已載入
跳轉輸入無效非數字/超出範圍JS 端校驗 parseInt、範圍 1~totalPages
樣式錯亂CSS 未引入 / 類名衝突引入 pagination.css、檢查類名前綴