分页页面将页面保存到cookie中

时间:2010-09-13 18:46:17

标签: javascript cookies pagination

我有一个这样的分页:

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 :(得分:0)

您应该在切换时保存当前页面并在文档就绪时读取cookie。如果未设置cookie,则不执行任何操作。否则,跳转到保存的页面。我建议你看看quirksmode.org的方便cookie functions