前提条件是评论分页显示,以下是实现方法:
1. Ajax请求页数据,需要修改post.php两处
①开头修改成
<?php
// 评论Ajax翻页 by 牧风
if(isset($_GET["action"]) && $_GET["action"] == "ajax_comments"){// Ajax请求的头数据
$this->need('comments.php');
}else{
if(strpos($_SERVER["PHP_SELF"],"themes")) header('Location:/');
$this->need('header.php');
?>
②.结尾处加上
<?php }?>
2. js部分
// jQuery版本 1.4+
jQuery(document).ready(function($) {
var comments = $("#comments"),
// 评论部分id
loadingText = "u8bc4u8bbau6570u636eu52a0u8f7du4e2dx2ex2ex2e",
// 加载loading提示
ajaxed = false;
$('#comments .page-navigator li a').live("click",function(e) {
e.preventDefault();
var _this = $(this),
_thisP = _this.parent();
if (_thisP.hasClass('current') || ajaxed == true) return; // 判断是否是当前页面
var _list = $('.comment-list'),
url = _this.attr("href").replace("#comments", "") + "?action=ajax_comments";
$.ajax({ // Ajax请求
url: url,
beforeSend: function() {
_list.text(loadingText);
ajaxed = true;
},
success: function(data) {
comments.html(data);
ajaxed = false;
}
});
return false;
});
});
因为jquery1.7 引入了这个.on来绑定事件,并且最新版本删除了.live
// jQuery版本 1.7+
$('#comments .page-navigator li a').live("click", function(e) 改成 comments.on("click", ".page-navigator li a", function(e)
bug反馈: http://mufeng.me
打包下载:评论Ajax翻页 by 牧风.zip
Typecho评论Ajax翻页
版主: seita