AJAX分页请求呈指数级增长

时间:2011-12-30 20:12:03

标签: jquery pagination

我有一个带有一些(jQuery ajax)标签的窗口,每个标签都会显示一些关于用户的信息:发送,接收,发布的帖子和发表的评论。我需要做一些分页,在页面之间来回切换时效果很好。但在最后两个标签(写的帖子和评论)中,我看到请求以指数方式增加。这是代码的一部分

if ($pageno != $lastpage) { 
   echo '<div class="item next_page" id="next_page_no_'.$nextpage.'">Siguiente</div>';
}

jQuery调用的代码工作正常:

$(".display_messages").on("click", ".next_page", function(){
var pageno = $(this).attr('id').replace('next_page_no_','');
$.get('retrieve_messages_rec.php?pageno='+pageno,function(data) {
    $('.display_messages').html(data);
})
});

jQuery调用的代码工作得不好:

$(".show_last_posts").on("click", ".next_page_posts", function(){
var pageno = $(this).attr('id').replace('next_page_no_','');
var usr_id= <?php echo mysql_real_escape_string($_GET['usr_id']); ?>;
$.get('user_last_posts.php?pageno='+pageno+'&usr_id='+usr_id,function(data) {
    $('.show_last_posts').html(data);
})
});

为了更好地了解,当您单击代码中的“.next_page”工作正常时,您会在每次单击时看到一个请求。但是当你点击'.next_page_posts'(在第二个例子中)时,你第一次得到一个文件'user_last_posts.php'的请求,三个请求第二次点击(下一对帖子),六个请求去第三页,接下来是十二页,然后是24,依此类推。为什么这样循环?这里显示的代码片段是否足以看出我的错误在哪里?既然它们基本相同,为什么它在其中一些中可以正常工作而在另一些中却没有?或者我是偏执狂,那是正常的吗?感谢

1 个答案:

答案 0 :(得分:0)

差异在.next_page_posts.next_page之间。 .next_page绑定到单个元素,而.next_page_posts绑定到每个帖子。比较两个选择器:

console.log( [".next_page_posts:",  $(".next_page_posts").length,  ".next_page:",  $(".next_page").length] )