1(function ($) { 2 3 let Name = "Pagination"; 4 5 $.fn.Pagination = function (options) { 6 let myDoom = this; 7 // é»è®¤å¼ 8 options = options || {}; 9 options.page = options.page || 1; // å½åé¡µæ° 10 options.count = options.count || 1; // æ»æ°é 11 options.limit = options.limit || 10; // æ¯é¡µæ°é 12 options.groups = options.groups || 5; // è¿ç»åºç°å ä¸ªé¡µç æé® 13 options.prev = options.prev || '<i class="glyphicon glyphicon-chevron-left"></i>'; // èªå®ä¹ä¸ä¸é¡µæé® 14 options.next = options.next || '<i class="glyphicon glyphicon-chevron-right"></i>'; // èªå®ä¹ä¸ä¸é¡µæé® 15 options.first = options.first || '<i class="glyphicon glyphicon-step-backward"></i>'; // èªå®ä¹é¦é¡µæé® 16 options.last = options.last || '<i class="glyphicon glyphicon-step-forward"></i>'; // èªå®ä¹å°¾é¡µæé® 17 options.onPageChange = options.onPageChange || function (page) {console.log(page)}; 18 19 let PageFloat = Math.floor(options.groups / 2), // é¡µç æµ®å¨é 10/2 = 5 20 maxPage = Math.ceil(options.count / options.limit), // æ»é¡µæ° 21 pageListHtml = ""; 22 23 let i = options.page - PageFloat; 24 if (options.page + PageFloat > maxPage ){ i = maxPage - (PageFloat * 2);} // 100 - 5 * 2 = 90 25 if (i < 1){i = 1 ;} 26 27 do { 28 let Selected = ""; 29 if (i === options.page){ 30 Selected = 'active'; 31 } 32 pageListHtml += '<li class="page-list '+Selected+'"><a href="#">'+i+'</a></li>'; 33 i ++; 34 // 夿æ¾ç¤ºé¡µæ° 35 // i å°äº å½å页 + é¡µç æµ®å¨é 36 // let a = (i <= (options.nowPage + PageFloat)); 37 // 妿å½å页 - é¡µç æµ®å¨é å°äº0 åi å°äº å¨ä¹åçåºç¡ä¸åå¤ (æµ®å¨ + 2 - å½å页) 个å页 38 // let b = (options.nowPage - PageFloat <= 0 && i < (options.nowPage + PageFloat + (PageFloat + 2 - options.nowPage) )); 39 // i æ°¸è¿ å°äºæå¤§é¡µæ° 40 // let c = (i <= maxPage); 41 // debugger; 42 }while ((i <= (options.page + PageFloat) || options.page - PageFloat <= 0 && i < (options.page + PageFloat + (PageFloat + 2 - options.page) )) && i <= maxPage ) 43 44 let html = '<nav aria-label="Page navigation">' + 45 '<ul class="pagination">' + 46 '<li><a href="#" class="pager-item" aria-label="first" title="åå°é¦é¡µ"><span aria-hidden="true">'+ options.first +'</span></a></li>' + 47 '<li><a href="#" class="pager-item" aria-label="prev" title="ä¸ä¸é¡µ"><span aria-hidden="true">'+ options.prev +'</span></a></li>' + 48 pageListHtml + 49 '<li><a href="#" class="pager-item" aria-label="next" class="ä¸ä¸é¡µ"><span aria-hidden="true">'+ options.next +'</span></a></li>' + 50 '<li><a href="#" class="pager-item" aria-label="last" title="åå¾å°¾é¡µ"><span aria-hidden="true">'+ options.last +'</span></a></li>' + 51 '</ul></nav>'; 52 53 54 // æ¸ ç©ºä¹åçå 容ç¶ååæ·»å æ°å 容 55 myDoom.off('click'); 56 myDoom.empty(); 57 myDoom.append(html); 58 59 // 忢页ç 60 myDoom.on('click', '.pagination .page-list', function() { 61 options.page = parseInt($(this).text()); 62 myDoom.Pagination(options); 63 options.onPageChange(parseInt($(this).text())); 64 }); 65 // é¦é¡µã尾页ãä¸ä¸é¡µãä¸ä¸é¡µ 66 myDoom.on('click','.pagination .pager-item',function () { 67 let label = $(this).attr('aria-label'); 68 let page = 1; 69 if (label === 'first'){ 70 page = 1; 71 } 72 else if (label === 'prev'){ 73 page = options.page - 1; 74 if (page < 1 ) page = 1; 75 }else if (label === 'next'){ 76 page = options.page +1; 77 if (page > maxPage) page = maxPage; 78 }else if (label === 'last'){ 79 page = maxPage; 80 } 81 options.page = page; 82 myDoom.Pagination(options); 83 options.onPageChange(page); 84 }) 85 } 86}(jQuery));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.