numéros de page changement de Javascript Pagination affichés

voix
16

J'ai un script de pagination pour une table qui génère des numéros de page basée sur le nombre d'éléments sont à l'intérieur du problème de table.Le est qu'il montre toutes les pages, par exemple, s'il y a 50 pages il remplir la page avec 50 boutons mais je veulent afficher uniquement les 3-4 premiers boutons puis ... et après que le dernier bouton de page. J'ai essayé de le modifier, mais je ne suis pas sûr de ce que je fais mal parce que ça ne fait pas vraiment quoi que ce soit

$.fn.pageMe = function(opts) {
    var $this = this, defaults = {
        perPage : 7,
        showPrevNext : false,
        hidePageNumbers : false
    }, settings = $.extend(defaults, opts);

    var listElement = $this;
    var perPage = settings.perPage;
    var children = listElement.children();
    var pager = $('.pager');

    if (typeof settings.childSelector != undefined) {
        children = listElement.find(settings.childSelector);
    }

    if (typeof settings.pagerSelector != undefined) {
        pager = $(settings.pagerSelector);
    }

    var numItems = children.length;
    var numPages = Math.ceil(numItems / perPage);

    pager.data(curr, 0);

    if (settings.showPrevNext) {
        $('<li class=page-item><a href=# class=prev_link>«</a></li>')
                .appendTo(pager);
    }

    var curr = 0;
    while (numPages > curr && (settings.hidePageNumbers === false)) {
        $(
                '<li class=page-item><a href=# class=page-link>'
                        + (curr + 1) + '</a></li>').appendTo(pager);
        curr++;
    }

    if (settings.showPrevNext) {
        $('<li class=page-item><a href=# class=next_link>»</a></li>')
                .appendTo(pager);
    }

    pager.find('.page-link:first').addClass('active');
    pager.find('.prev_link').hide();
    if (numPages <= 1) {
        pager.find('.next_link').hide();
    }
    pager.children().eq(1).addClass(active);

    children.hide();
    children.slice(0, perPage).show();

    pager.find('li .page-link').click(function() {
        var clickedPage = $(this).html().valueOf() - 1;
        goTo(clickedPage, perPage);
        return false;
    });
    pager.find('li .prev_link').click(function() {
        previous();
        return false;
    });
    pager.find('li .next_link').click(function() {
        next();
        return false;
    });

    function previous() {
        var goToPage = parseInt(pager.data(curr)) - 1;
        goTo(goToPage);
    }

    function next() {
        goToPage = parseInt(pager.data(curr)) + 1;
        goTo(goToPage);
    }

    function goTo(page) {
        var startAt = page * perPage, endOn = startAt + perPage;

        children.css('display', 'none').slice(startAt, endOn).show();

        if (page >= 1) {
            pager.find('.prev_link').show();
        } else {
            pager.find('.prev_link').hide();
        }

        if (page < (numPages - 1)) {
            pager.find('.next_link').show();
        } else {
            pager.find('.next_link').hide();
        }

        pager.data(curr, page);
        pager.children().removeClass(active);
        pager.children().eq(page + 1).addClass(active);

    }
};
Créé 27/09/2018 à 21:04
utilisateur
Dans d'autres langues...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more