如何使用jQuery获取正确的页码?

时间:2015-02-16 13:22:05

标签: jquery html

我无法弄清楚哪一部分在更改页码时出错。我想根据点击更改为页面号,例如在论坛中。我需要有人帮助我。代码是否笨拙,可以建议调试jQuery代码的软件。谢谢!

查看此Fiddle,了解相关信息!

<div id="display" class="pager">
</div>
$(function () {
    totalPage = 10;
    pageStart = 1;
    skipPageFrom = pageStart + 1;
    skipPageTo = totalPage - 1;
    //initialize
    changePager(totalPage, pageStart, skipPageFrom, skipPageTo);

    //click to change pager
    $('.pager a').on('click', function (e) {
        e.preventDefault();
        //reset values
        pageStart = parseInt($(this).text());
        skipPageFrom = pageStart + 1;
        skipPageTo = totalPage - 1;
        changePager(totalPage, pageStart, skipPageFrom, skipPageTo);
    });

});
function changePager(totalPage, pageStart, skipPageFrom, skipPageTo) {
    $('#display').empty('');
    a_str = "";
    if ((totalPage - pageStart) > 5) {
        for (i = pageStart; i <= totalPage; i++) {
            if (i > skipPageFrom && i < skipPageTo) {
                a_str += "<span>...</span>";//add span to indicate skip pageNo
                i = skipPageTo - 1;         // skip values
            } else {
                a_str += "<a >" + i + "</a>";
            }
        }
    } else {
        pageStart = (totalPage - 4)<1 ? 1:(totalPage - 4) ;
        for (i = pageStart; i <= totalPage; i++) {
            a_str += "<a >" + i + "</a>";
        }
    }
    $('#display').append(a_str);
}

2 个答案:

答案 0 :(得分:1)

Firebug非常适合调试。你可以在Firefox中下载它作为插件,它是我个人的首选武器。

至于你的问题,我可以看到一个项目是你需要推迟你的听众,因为你动态地创建了锚点(当你激活听众时它们不存在)。

http://jsfiddle.net/f2w1ko21/3/

$('.pager').on('click', 'a', function (e) {

答案 1 :(得分:1)

  1. 您可以致电changePager()(好)
  2. 来创建按钮
  3. 您附加了点击听众(好)
  4. 点击后,再次呼叫changePager() ...这样您就可以完全重新生成按钮,这样就可以销毁它们上的点击监听器。这就是为什么它只能运作一次。
  5. 如果您在Chrome中工作,只需按F12即可显示调试器。在Firefox中,下载Firebug。如果你正在使用互联网资源管理器,那你就搞砸了:)