我有一个带有一些(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,依此类推。为什么这样循环?这里显示的代码片段是否足以看出我的错误在哪里?既然它们基本相同,为什么它在其中一些中可以正常工作而在另一些中却没有?或者我是偏执狂,那是正常的吗?感谢
答案 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] )