-1

我的分页方式有问题。假设我有 10 页,当用户单击页码时,它会正确加载数据,但我在单击下一页和上一页时遇到问题。

我有这个 html 文件:

 <% for(var i = 0; i < 10 ; i++){ %>
            <% if(i === 0){ %>
                <li><a class="a-page-item current" >Previous</a></li>
                <li class="a-page-item current" ><%= i+1 %></a></li>
            <% } else if(i > 0 && i < 10 - 1){ %>
                <li><a class="a-page-item current"> <%= i+1%> </a></li>
            <% } %>
        <% } %>

    <li class="arrow"><a class="a-page-item current" >Next</a></li>

我的问题是,当我单击下一步时,我希望将当前页面添加 1。但我不知道如何处理“下一步”,它是一个字符串。我需要将当前页面保留在某处,然后当我单击下一步时,它会将 1 添加到当前页面。这就是我尝试过的,但我收到了错误,因为它想要加载“Next”,这是字符串而不是 currentpage +1!

onPageClick : function(event) {

                var currentPage = event.target.innerHTML;
                if (currentPage == "Next"){

                    var currentPageInt = parseInt(currentPage);
                    this.currentPageInt +1;
                    this.setPagination(currentPageInt, 10);
                }


                else if (currentPage == "previous"){

                    var currentPageInt = parseInt(currentPage);
                    this.currentPageInt - 1;
                    this.setPagination(currentPageInt, 10);

                }

                else {
                var currentPageInt = parseInt(currentPage);
                this.setPagination(currentPageInt, 10);

            }

            },

顺便this. setPagination(currentPageInt, 10);从用户选择的页面加载 10 个数据。

4

2 回答 2

0

也许您已经注意到了,但是您正在尝试解析“Next”和“previous”,这会导致NaN(Not A Number) :

if currentPage == 'Next'
    parseInt('Next') // NaN
if currentPage == 'previous'
    parseInt('previous') // NaN

还要小心“previous”,实际的内部 HTML 是“Previous”:

"previous" == "Previous" // false

为了防止这种错误在以后再次发生,您可以使用 class 属性。这将允许您更改内部 HTML 而无需更新 javascript 部分:

<a class="next">Next page</a>
<a class="previous">Previous page</a>
if jQuery(e.target).hasClass('next')
    // increment
if jQuery(e.target).hasClass('previous')
    // decrement

另一点是您当前不保存增量值:

this.currentPageInt = 1;
this.currentPageInt + 1; // 2
this.currentPageInt; // still 1

以下是解决此问题的各种方法(对于 相同-):

this.currentPageInt = this.currentPageInt + 1;
this.currentPageInt; // 2
this.currentPageInt += 1;
this.currentPageInt; // 3
this.currentPageInt++;
this.currentPageInt; // 4

也就是说,var currentPageInt没用,你应该完全删除它并使用它this.currentPageInt。但更重要的是,仅在第三种情况下(当用户点击页码时)解析可能会解决您的问题。

于 2013-09-20T05:29:23.977 回答
0

这个怎么样?

onPageClick : function(event) {
  var currentPage = event.target.innerHTML;
  if (currentPage === "Next") {
    this.currentPageInt++;
  } else if (currentPage === "Previous") {
    this.currentPageInt--;
  } else {
    this.currentPageInt = parseInt(currentPage);
  }
  this.setPagination(this.currentPageInt, 10);
},
于 2013-09-19T11:36:25.543 回答