Страница пагинации сохраняет страницу в cookie - PullRequest
0 голосов
/ 13 сентября 2010

У меня есть нумерация страниц, как это сделано:

this.pagination = function(limit, length){
        //number of pages
        var nrpages = Math.ceil(length/limit);
        var currPage = this.pagingcurrPage;

        console.log('l- '+length);
        console.log('p- '+nrpages);
        console.log('c- '+currPage);
        $.cookie('presssection-cp',currPage);
        var thisSection = this;

        //active class for first page
        if(currPage == 1){
            var activeClass = ' class="active"';
        }
        else{
            var activeClass = '';
        }

        var output = '<li class="page-item"><a'+activeClass+' href="0">1</a></li>';

        if(nrpages > 1){
            if(nrpages > 7){
                if(currPage <= 4){
                    for( i=2; i < 7; i++){
                        offset = (i-1) * limit;
                        //active class for current page
                        if((currPage-1) * limit == offset){
                            activeClass = ' class="active"';
                        }
                        else{
                            activeClass = '';
                        }
                        output += '<li class="page-item"><a'+activeClass+' href="'+offset+'">'+i+'</a></li>';
                    }
                    output += '<li class="rightDot page-item">...</li>';
                }
                else if(currPage >= (nrpages - 4)){
                    var pageFrom = nrpages - 5;
                    var pageTo = nrpages;

                    output += '<li class="leftDot page-item">...</li>';
                    for( i=pageFrom; i < pageTo; i++){
                        offset = (i-1) * limit;
                        //active class for current page
                        if((currPage-1) * limit == offset){
                            activeClass = ' class="active"';
                        }
                        else{
                            activeClass = '';
                        }
                        output += '<li class="page-item"><a'+activeClass+' href="'+offset+'">'+i+'</a></li>';
                    }
                }
                else{
                    var pageFrom = currPage - 2;
                    var pageTo = pageFrom + 5;

                    output += '<li class="leftDot page-item">...</li>';
                    for( i=pageFrom; i < pageTo; i++){
                        offset = (i-1) * limit;
                        //active class for current page
                        if((currPage-1) * limit == offset){
                            activeClass = ' class="active"';
                        }
                        else{
                            activeClass = '';
                        }
                        output += '<li class="page-item"><a'+activeClass+' href="'+offset+'">'+i+'</a></li>';
                    }
                    output += '<li class="rightDot page-item">...</li>';
                }
            }
            else{
                for(i=2; i < nrpages; i++){
                    if( i==1 ){
                        offset = 0;
                    }
                    else{
                        offset = (i-1) * limit;
                    }
                    if(currPage == i){
                        activeClass = ' class="active"';
                    }
                    else{
                        activeClass = '';
                    }
                    output += '<li class="page-item"><a'+activeClass+' href="'+offset+'">'+i+'</a></li>';
                }
            }

            //active class for last page
            if(currPage == nrpages){
                activeClass = ' class="active"';
            }
            else{
                activeClass = '';
            }
            output += '<li class="page-item"><a'+activeClass+' href="'+(nrpages-1)*limit+'">'+nrpages+'</a></li>';
            $('#pressItemsPagination ul.pager').html(output);
            $('#pressItemsPagination ul.pager').show();
        }
        else{
            $('#pressItemsPagination ul.pager').hide();
        }

            //debugTime('section '+this.sectionId+' init start');
        var html = '';

        html += '<div id="'+this.sectionId+'" class="tSection '+this.type+' '+this.section+'">';

            html += '\
            <div class="clearFix">\
                <ul class="tPaging pagination" style="float: left;">&nbsp;</ul>\
            </div>';
        html += '</div>'

        //register pagination clicks
        $('#pressItemsPagination ul.pager li a').live('click',function() {

            //get the offset
            var offset = $(this).attr('href');

            if( offset.indexOf('/') ) {
                offset = offset.substr(offset.lastIndexOf('/')+1);
            }

Как я могу сделать этот скрипт, чтобы запомнить, где находится пользователь? Если пользователь нажимает на странице 2 на странице разбивки на страницы, а затем переходит на другую страницу, и пользователи возвращаются на страницу, на которой находится разбиение на страницы, было бы хорошо, если бы он мог помнить, что пользователь был на странице 2. Теперь он сбрасывается обратно на страницу 1. Я сохранить currPage в файле cookie atm. Это верно? Что еще мне нужно изменить в этом скрипте, чтобы он запомнил страницу разбиения на страницы.

1 Ответ

0 голосов
/ 13 сентября 2010

Вы должны сохранять текущую страницу всякий раз, когда она переключается, и читать файл cookie в готовом документе. Если cookie не установлен, ничего не делать. В противном случае перейдите на сохраненную страницу. Я рекомендую взглянуть на удобные функции cookie на quirksmode.org .

...