【问题标题】:Pagination page saves page in to cookie分页页面将页面保存到 cookie
【发布时间】:2010-09-14 02:51:47
【问题描述】:

我有一个这样的分页:

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 页,然后转到不同的页面,并且 n 回到分页所在的页面,如果它能够记住用户在第 2 页,那就太好了。现在它重置回第 1 页。我将 currPage 保存在 cookie atm 上。那是对的吗?我还需要在该脚本中更改什么以便它记住分页页面。

【问题讨论】:

  • 这里没有足够的代码。讽刺。

标签: javascript cookies pagination


【解决方案1】:

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

【讨论】:

  • 你在问如何记住用户在哪里(“我怎样才能让那个脚本记住用户在哪里?”“我在 cookie atm 上保存了 currPage。正确吗?” 是这里唯一的问题)。你应该澄清这一点。此外,您的帖子中有太多代码,没有人愿意阅读(正如 Here Be Wolves 指出的那样)。您应该将代码精简到基本部分。
猜你喜欢
  • 2017-04-01
  • 2020-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 2013-12-24
  • 2013-05-09
  • 2013-10-04
相关资源
最近更新 更多