亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

分頁顯示 5 頁并隱藏其余頁面

分頁顯示 5 頁并隱藏其余頁面

蕪湖不蕪 2022-11-03 14:47:41
我試圖設計一個帶有分頁的結果顯示頁面。我可以顯示所有頁面或 5 頁。我想逐步顯示 5 頁。這段代碼的問題在于,它顯示了所有頁面。如果有 12 個頁面,則顯示 12 個按鈕。var length = response.length;console.log(length);function pagination(length){    var size = Math.ceil(length/10);        var pageDiv = $('.pagination');    var pageDivData = "";    pageDivData += "<a href='javascript:void(0)' id='firstPage' class='firstPage'>&laquo;</a>";    var stepSize = 5;    var stepCount = Math.ceil(size/stepSize);    console.log(stepCount);    for(var step = 1; step<stepCount; step++){        for(var i=id; i<=stepSize; i++){            if(id == i){                pageDivData +="<a href='javascript:void(0)' class='pageNo active' id='"+i+"'>"+i+"</a>";            }else{                pageDivData +="<a href='javascript:void(0)' class='pageNo' id='"+i+"'>"+i+"</a>";            }        }        stepSize++;    }    pageDivData += "<a href='javascript:void(0)'>...</a>";    pageDivData += "<a href='javascript:void(0)' class='pageNo id='"+size+"'>"+(size)+"</a>";    if(id!=size){        pageDivData += "<a href='javascript:void(0)' id='lastPage'>&raquo;</a>";    }    pageDiv.html(pageDivData);}pagination(length);
查看完整描述

3 回答

?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

在這里,您要一次顯示 5 頁。因此,對于 5 頁,您將值存儲在名為stepSize的變量中,因此您只需將其保持為 5。


您在每一步中增加 stepSize 的值,您不應該增加它,只保留 5。


我不明白你的第一個 for 循環的目的。stepCount 做什么,為什么需要。


因此,可以使用以下代碼簡單地編輯您的代碼:


var length = response.length;

    console.log(length);

    function pagination(length){

        var size = Math.ceil(length/10);

        

        var pageDiv = $('.pagination');

        var pageDivData = "";

        pageDivData += "<a href='javascript:void(0)' id='firstPage' class='firstPage'>&laquo;</a>";

        var stepSize = 5;

            for(var i=id; i<=stepSize; i++){

                if(id == i){

                    pageDivData +="<a href='javascript:void(0)' class='pageNo active' id='"+i+"'>"+i+"</a>";

                }else{

                    pageDivData +="<a href='javascript:void(0)' class='pageNo' id='"+i+"'>"+i+"</a>";

                }

        }

        pageDivData += "<a href='javascript:void(0)'>...</a>";

        pageDivData += "<a href='javascript:void(0)' class='pageNo id='"+size+"'>"+(size)+"</a>";

        if(id!=size){

            pageDivData += "<a href='javascript:void(0)' id='lastPage'>&raquo;</a>";

        }

        pageDiv.html(pageDivData);

    }

pagination(length);


查看完整回答
反對 回復 2022-11-03
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

我對上面的代碼做了一些改動。通過使用此代碼,用戶可以顯示下 4 個(如果可用)頁面、前 4 個(如果可用)和當前頁面。


第一頁鏈接和上一頁鏈接與最后一頁和下一頁鏈接相同。


因此,一次顯示總共 9 個頁面和 4 個額外鏈接。


該代碼在 React JS 中運行


import React from 'react';

import * as GlobalConfig from '../../providers/globals/config';

import { Link } from "react-router-dom";


function Pagenation(props) {


    const loadPage = (page) => {

        props.loadPage(page);

    };


    const totalEntries = props.paginationObj.totalEntries;

    const totalPage = props.paginationObj.totalPage;

    const currentPage = props.paginationObj.currentPage;

    const nextPage = props.paginationObj.nextPage;

    const perPage = GlobalConfig.perPage;

    const start = (props.paginationObj.skipEntries + 1);

    const end = ((props.paginationObj.skipEntries + perPage) < totalEntries) ? (props.paginationObj.skipEntries + perPage) : totalEntries;


    const PagesLink = () => {


        let pages = [];


        // first & next page links

        pages.push(

            <li key={'first'} onClick={(e) => loadPage(1)} className={(currentPage === 1) ? 'paginate_button page-item previous disabled' : 'paginate_button page-item previous'}>

                <Link to="#" aria-controls="listingTable" data-dt-idx="0" className="page-link">&lt;&lt; First</Link>

            </li>

        );

        pages.push(

            <li key={'previous'} onClick={(e) => loadPage(((currentPage - 1) < 1) ? 1 : currentPage - 1)} className={(currentPage === 1) ? 'paginate_button page-item previous disabled' : 'paginate_button page-item previous'}>

                <Link to="#" aria-controls="listingTable" data-dt-idx="0" className="page-link">&lt; Previous</Link>

            </li>

        );


        // display previous pages links

        let previousLinks = currentPage - 4;

        for (let i = previousLinks; i <= currentPage; i++) {

            if (i < currentPage && i > 0) {

                pages.push(

                    <li key={i} onClick={(e) => loadPage(i)} className={(currentPage === i) ? 'paginate_button page-item active' : 'paginate_button page-item'}>

                        <Link to="#" aria-controls="listingTable" data-dt-idx="1" className="page-link">{i}</Link>

                    </li>

                );

            }

        }


        // display next pages links

        let nextLinks = (currentPage < totalPage) ? (currentPage + 4) : currentPage;

        for (let i = currentPage; i <= nextLinks; i++) {

            if (i <= totalPage) {

                pages.push(

                    <li key={i} onClick={(e) => loadPage(i)} className={(currentPage === i) ? 'paginate_button page-item active' : 'paginate_button page-item'}>

                        <Link to="#" aria-controls="listingTable" data-dt-idx="1" className="page-link">{i}</Link>

                    </li>

                );

            }

        }


        // next & last page links 

        pages.push(

            <li key={'next'} onClick={(e) => loadPage(((currentPage + 1) > totalPage) ? totalPage : currentPage + 1)} className={(nextPage) ? 'paginate_button page-item next' : 'paginate_button page-item next disabled'}>

                <Link to="#" aria-controls="listingTable" data-dt-idx="2" className="page-link">Next &gt;</Link>

            </li>

        );

        pages.push(

            <li key={'last'} onClick={(e) => loadPage(totalPage)} className={(nextPage) ? 'paginate_button page-item next' : 'paginate_button page-item next disabled'}>

                <Link to="#" aria-controls="listingTable" data-dt-idx="2" className="page-link">Last &gt;&gt;</Link>

            </li>

        );


        return pages;

    }


    return (

        <>

            {totalEntries > 0 &&

                <div className="pagenation-foot d-flex align-items-center justify-content-between">


                    <div className="totlecountpage"> <span id="displayed-record">Showing {start}-{end}</span> of {totalEntries} entries</div>


                    <div className="countingpaging">

                        <div className="dataTables_paginate paging_simple_numbers" id="listingTable_paginate">

                            <ul className="pagination">


                                <PagesLink />


                            </ul>

                        </div>

                    </div>

                </div>

            }

        </>

    )

}


export default Pagenation;

http://img1.sycdn.imooc.com//636365790001303f06540071.jpg

查看完整回答
反對 回復 2022-11-03
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

解決方案是根據要求進行許多 ajax 調用。解決方案來自不同的部分



查看完整回答
反對 回復 2022-11-03
  • 3 回答
  • 0 關注
  • 258 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號