指南)
前端UI組件【免費下載鏈接】DataTablesDataTables - legacy repo項目地址https://gitcode.com/gh_mirrors/da/DataTables點擊查看免費下載導讀本文以本倉庫的 Readme.md 為骨架系統(tǒng)講解 DataTables——一個為 jQuery 設計的 HTML 表格增強插件——的定位、安裝方式與初始化用法。你將學會用一行 JavaScript 為任意 HTML 表格接入排序、分頁與搜索過濾能力并通過配置對象按需開啟或關閉功能同時結合 media/js/jquery.dataTables.js 的源碼實現(xiàn)理解dataTable()與DataTable()兩種初始化方式的底層差異、默認選項的源碼出處以及倉庫內 examples 示例目錄的實戰(zhàn)參考價值。一、倉庫定位這是一個 legacy 倉庫在深入使用之前需要先明確本倉庫的性質。根據(jù) Readme.md 的說明本倉庫是 DataTables 的legacy 倉庫遺留版本倉庫主源碼倉庫另有其處本倉庫主要承載已構建好的分發(fā)產物。從 package.json 可以確認本倉庫當前對應 DataTables1.10.21版本核心文件為 media/js/jquery.dataTables.js其文件頭標注的版權信息為?2008-2020 SpryMedia Ltd。同時DataTables 官方還維護著一系列Dist-*分發(fā)倉庫用于向 NPM、NuGet 等包管理生態(tài)發(fā)布產物每個分發(fā)倉庫對應一個核心 JavaScript 文件、一套樣式或一個擴展。官方推薦通過 download builder 獲取所需文件包括 NPM、NuGet、CDN 與直接下載完整安裝細節(jié)見官方安裝手冊——本倉庫的 package.json、bower.json、composer.json 則展示了各生態(tài)下可用的分發(fā)形態(tài)。二、DataTables 是什么為 HTML 表格注入排序、分頁與過濾DataTables 是 jQuery 的一個表格增強插件它用極小的成本為普通 HTML 表格加入**排序sorting、分頁paging和過濾filtering**能力。其官方目標被一句話概括為增強 HTML 表格中數(shù)據(jù)的可訪問性To enhance the accessibility of data in HTML tables。為了實現(xiàn)這一目標DataTables 在設計時明確面向兩類用戶開發(fā)者DataTables 提供了大量選項控制數(shù)據(jù)應如何獲取、顯示和被操作同時提供一套完整的 API 用于訪問和操作表格。終端用戶使用 DataTables 界面的人可以直觀、快速地完成排序、過濾、分頁與滾動等操作從表格信息中獲取最大價值。從源碼角度看這份目標與能力描述在 media/js/jquery.dataTables.js 的類注釋中得到印證插件基于**漸進增強progressive enhancement**原則為任意 HTML 表格附加高級交互控件見 composer.json 的描述字段。2.1 版本與依賴前提本倉庫版本 1.10.21見 package.json 的version字段。依賴方面jQuery1.7package.json 的dependenciesbower.json 要求1.7.0。例如 examples/basic_init/zero_configuration.html 中即使用 jQuery 3.5.1 配合 DataTables 演示。核心構建產物media/js/jquery.dataTables.js與其壓縮版media/js/jquery.dataTables.min.js以及樣式文件media/css/jquery.dataTables.css與壓縮版package.json 的files字段列出了發(fā)布時隨包攜帶的文件清單。三、安裝 DataTables3.1 官方獲取途徑獲取 DataTables 的主要途徑是使用官方 download builder它允許開發(fā)者勾選所需的核心文件、擴展與樣式主題然后生成自定義下載包或 CDN 引用。也可以直接通過DataTables CDN按需引用單個文件。以上兩種方式的具體步驟以官方安裝文檔為準。3.2 通過 NPM、Bower 與 Composer 安裝如果偏好包管理器本倉庫對應的分發(fā)包以datatables.net為名發(fā)布在 NPM 與 Bower 上。若要使用 Bootstrap、Foundation 等其他樣式庫的配套樣式只需在包名上添加對應后綴即可。此外 composer.json 表明 PHP 生態(tài)下存在datatables/datatables包版本同樣為 1.10.21。從 bower.json 可以清楚看到包內實際交付的內容{ name: datatables, main: [ media/js/jquery.dataTables.js, media/css/jquery.dataTables.css, media/images/sort_asc.png, media/images/sort_asc_disabled.png, media/images/sort_both.png, media/images/sort_desc.png, media/images/sort_desc_disabled.png ], dependencies: { jquery: 1.7.0 }, license: MIT }可以看到一個 DataTables 包除了核心 JS 與 CSS 外還內置了排序狀態(tài)指示圖標sort_asc.png、sort_desc.png、sort_both.png等位于 media/images/這些圖片會在列排序時自動顯示在表頭。四、快速上手一行代碼初始化表格4.1 最簡初始化在最簡單的情況下DataTables 只需一行 JavaScript 即可完成初始化$(table).dataTable();其中 jQuery 選擇器用來取得要增強的目標表格的引用。由于 DataTables默認開啟大部分功能這行代碼執(zhí)行后表格立即獲得搜索searching、排序ordering和分頁paging能力。這一點可以從兩個層面得到驗證示例層面examples/basic_init/zero_configuration.html 正是零配置演示——頁面在$(document).ready中僅執(zhí)行$(#example).DataTable();就為一張 50 余行的員工表注入了完整的搜索框、可點擊排序的表頭和分頁條。源碼層面media/js/jquery.dataTables.js 中DataTable.defaults的默認選項詳見下文默認選項小節(jié)將分頁、排序、搜索等特性全部置為開啟。4.2 通過配置對象定制行為如果需要讓 DataTables 執(zhí)行特定動作可以在構造器中傳入一個配置對象。Readme 給出了關閉分頁并開啟縱向滾動的示例$(table).dataTable( { paginate: false, scrollY: 300 } );這段代碼將禁用分頁功能同時讓表格在縱向超出 300 像素時啟用滾動。Readme 同時指出DataTables 全部可用選項的完整列表收錄于官方文檔。這里需要提醒配置項名稱同時兼容**駝峰式camelCase**與1.9 時代遺留的匈牙利命名法如bPaginate——源碼中_fnCamelToHungarian函數(shù)見 media/js/jquery.dataTables.js 約 2027 行處的調用負責將現(xiàn)代命名映射為內部舊式名稱因此新舊兩種寫法都能被正確解析。4.3 兩種初始化方式的源碼級差異不少初學者會困惑dataTable()與DataTable()的區(qū)別。查看 media/js/jquery.dataTables.js 末尾的 jQuery 掛載代碼約 15168–15188 行即可解開疑問// jQuery access $.fn.dataTable DataTable; // Provide access to the host jQuery object (circular reference) DataTable.$ $; // Legacy aliases $.fn.dataTableSettings DataTable.settings; $.fn.dataTableExt DataTable.ext; // With a capital D we return a DataTables API instance rather than a // jQuery object $.fn.DataTable function ( opts ) { return $(this).dataTable( opts ).api(); }; // All properties that are available to $.fn.dataTable should also be // available on $.fn.DataTable $.each( DataTable, function ( prop, val ) { $.fn.DataTable[ prop ] val; } );關鍵結論$().dataTable(opts)返回經(jīng)過 jQuery 鏈式包裝的對象適合在 jQuery 調用鏈中繼續(xù)操作 DOM。$().DataTable(opts)內部調用dataTable(opts).api()返回的是DataTables API 實例方便直接調用rows()、search()、order()等 API 方法進行數(shù)據(jù)訪問與操作。源碼同時把DataTable.settings與DataTable.ext暴露為遺留別名$.fn.dataTableSettings與$.fn.dataTableExt供老版本插件和代碼繼續(xù)使用。另外media/js/jquery.dataTables.js 頂部采用 UMD 包裝約 23–55 行支持三種加載環(huán)境AMDdefine([jquery], factory)CommonJSmodule.exports function (root, $)可配合 Node 環(huán)境的require(jquery)瀏覽器全局直接調用factory(jQuery, window, document)。因此同一份文件既能通過script標簽引入也能被 RequireJS、webpack 等模塊系統(tǒng)加載。五、默認選項為什么零配置也能開箱即用DataTables 的默認行為全部集中在 media/js/jquery.dataTables.js 約 9935 行起的DataTable.defaults對象中。以下是源碼中可查證的幾個關鍵默認值注意源碼中保留的是內部匈牙利命名即bPaginate等特性源碼默認項默認值說明分頁bPaginatetrue默認啟用分頁約 10467 行每頁長度選擇器bLengthChangetrue默認顯示每頁顯示條數(shù)下拉約 10449 行處理中指示器bProcessingfalse大數(shù)據(jù)量排序時的處理中提示默認關閉約 10488 行也就是說之所以$(table).dataTable()一行即可工作是因為這些特性在DataTable.defaults中默認開啟而當你傳入{ paginate: false }這類配置時初始化流程會將用戶配置與DataTable.defaults合并源碼約 881 行var defaults DataTable.defaults;處的邏輯從而覆蓋默認行為。六、倉庫內可運行的示例資源本倉庫 examples/ 目錄收錄了大量可直接在瀏覽器中打開運行的 HTML 示例按主題組織為 8 大類是學習 DataTables 的最佳配套教材examples/basic_init/基礎初始化——零配置、功能開關、排序、多列排序、多表、隱藏列、復雜表頭、DOM 定位、彈性寬度、狀態(tài)保存、數(shù)據(jù)渲染、滾動等入口見 examples/basic_init/index.html。examples/advanced_init/高級初始化——DOM/jQuery 事件、DataTables 事件、列渲染、每頁條數(shù)、多控件、HTML5data-*屬性、默認值設置、行分組、表尾回調等入口見 examples/advanced_init/index.html。examples/styling/樣式集成——基礎樣式、Bootstrap 3/4、Foundation、Semantic UI、jQuery UI ThemeRoller、Material Design 與 UIKit 3 預覽版入口見 examples/styling/index.html。examples/data_sources/數(shù)據(jù)來源——DOM 數(shù)據(jù)、Ajax 數(shù)據(jù)、JavaScript 數(shù)組、服務端處理入口見 examples/data_sources/index.html。examples/api/API 使用——增行、列過濾、行高亮、子行詳情、行選擇、表單輸入、索引列、動態(tài)顯隱列、正則搜索等入口見 examples/api/index.html。examples/ajax/Ajax 數(shù)據(jù)源——數(shù)組、對象、嵌套對象、正交數(shù)據(jù)、延遲渲染等配套測試數(shù)據(jù)位于 examples/ajax/data/入口見 examples/ajax/index.html。examples/server_side/服務端處理——含 PHP 示例腳本 examples/server_side/scripts/server_processing.php、SSP 類 examples/server_side/scripts/ssp.class.php以及 MySQL、PostgreSQL、SQLite、SQL Server、Oracle、Firebird 等多種數(shù)據(jù)庫建表腳本見 examples/server_side/scripts/ 目錄此外還覆蓋自定義 HTTP 變量、POST 數(shù)據(jù)、JSONP、流水線分頁等高級主題入口見 examples/server_side/index.html。examples/plug-ins/插件機制——API 插件方法、排序插件含/不含類型檢測、范圍過濾、實時 DOM 排序入口見 examples/plug-ins/index.html。每個示例頁面底部都附有完整的 JavaScript、HTML、CSS 代碼標簽頁并直接引用 media/js/jquery.dataTables.js 與 media/css/jquery.dataTables.css適合直接復制改造。七、文檔、支持與許可證文檔DataTables 的完整選項、API 與插件接口文檔集中在官方站點官方站點還介紹了大量可用于進一步增強和定制表格的擴展與插件。支持官方支持渠道包括 DataTables 官方論壇與商業(yè)支持方案。許可證DataTables 以MIT 許可證發(fā)布允許自由使用、修改和分發(fā)前提是保留版權頭——具體而言是 media/js/jquery.dataTables.js 頂部以/*!開頭的那段注釋塊本倉庫同時提供 license.txt。倉庫自身的 package.json、bower.json 與 composer.json 中l(wèi)icense字段也均聲明為 MIT。八、總結本倉庫作為 DataTables 1.10.21 的分發(fā)型倉庫其 Readme.md 清晰回答了三個問題DataTables 是什么為 jQuery 表格加入排序、分頁、過濾的增強插件、如何安裝download builder、CDN、NPM/Bower 的datatables.net包、Composer 的datatables/datatables包、如何使用$(table).dataTable()一行初始化或傳入{ paginate: false, scrollY: 300 }這類配置對象定制行為。結合 media/js/jquery.dataTables.js 的源碼我們還能進一步掌握dataTable()與DataTable()的返回類型差異、UMD 模塊加載方式以及DataTable.defaults中默認開啟特性的確切出處而 examples/ 目錄的 8 大類可運行示例則是從基礎到服務端處理全鏈路的最佳實戰(zhàn)參照。贊分享前端UI組件【免費下載鏈接】DataTablesDataTables - legacy repo項目地址https://gitcode.com/gh_mirrors/da/DataTables點擊查看免費下載相關推薦CANN/ops-nn負對數(shù)似然損失算子NllLoss 產品支持情況 |產品 | 是否支持 | |: |: :| | term Ascend 950PR/Ascend 950DT/term | √人工智能算子庫深度學習CANNAscend智能網(wǎng)絡資源嗅探下載工具快速上手完整指南跨平臺下載終極解決方案智能網(wǎng)絡資源嗅探下載工具快速上手完整指南跨平臺下載終極解決方案 在數(shù)字內容爆炸的時代你是否經(jīng)常遇到想要保存的精彩視頻卻無法下載的困擾無論是微信視頻號的精彩桌面應用網(wǎng)絡音視頻QRemeshify完整安裝指南快速上手Blender重網(wǎng)格插件QRemeshify完整安裝指南快速上手Blender重網(wǎng)格插件 QRemeshify是一款專為Blender設計的開源重網(wǎng)格插件能夠輸出高質量的四邊形拓撲圖形學3D建模上一篇如何快速部署Stable Diffusion WebUI終極AI繪畫一鍵安裝指南下一篇STM32 OLED驅動終極指南快速點亮SSD1306顯示屏的完整方案創(chuàng)作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考