我无法弄清楚哪一部分在更改页码时出错。我想根据点击更改为页面号,例如在论坛中。我需要有人帮助我。代码是否笨拙,可以建议调试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);
}
答案 0 :(得分:1)
Firebug非常适合调试。你可以在Firefox中下载它作为插件,它是我个人的首选武器。
至于你的问题,我可以看到一个项目是你需要推迟你的听众,因为你动态地创建了锚点(当你激活听众时它们不存在)。
http://jsfiddle.net/f2w1ko21/3/
$('.pager').on('click', 'a', function (e) {
答案 1 :(得分:1)
changePager()
(好)changePager()
...这样您就可以完全重新生成按钮,这样就可以销毁它们上的点击监听器。这就是为什么它只能运作一次。如果您在Chrome中工作,只需按F12即可显示调试器。在Firefox中,下载Firebug。如果你正在使用互联网资源管理器,那你就搞砸了:)