Javascript Pagination változó oldal látható számok

szavazat
16

Van egy lapszámozás script egy asztal, amely létrehozza az oldalszámok alapján, hogy hány elem belsejében table.The probléma az, hogy ez azt mutatja, az összes oldalt, például akkor, ha van 50 oldal lenne kitölteni az oldalt 50 gombokat de azt akarjuk, hogy csak az első 3-4 gombok segítségével, majd ... és utána az utolsó oldal gombot. Megpróbáltam, hogy módosítsa azt, de nem vagyok biztos benne, hogy mit csinálok rosszul, mert ez nem igazán tesz semmit

$.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);

    }
};
A kérdést 27/09/2018 21:04
felhasználó
Más nyelveken...                            

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