自写了《博客加入若干Ajax效果》以来,在博客上陆续添加启用了一些ajax效果,一方面丰富博客体验,一方面也当做练习学习js的一种实践吧。昨天的时候,将wilin版的侧边栏最新评论修改成了AJax版的,可以翻看评论列表,也可以进入单个评论查看模式(借鉴了mg12的wp-recentcomment插件),几乎就是wp-rc的精简版,效果几乎一模一样,只不过wp-rc的脚本使用jQuery,更新列表时会有渐变的过渡效果。我自己的只是给加了个自己写的滑动效果,还能凑活。
只不过只是这样并不能满足我,我想既然边栏最新评论列表做成ajax可翻页形式,那么就是为了让读者去查看寻找自己感兴趣的评论,为了增进交流的便利,在侧边栏能直接回复自己感兴趣的评论那会很棒。
于是着手实现了这个效果。
考虑会遇到的的难点
在页面上插入表单很容易,要注意的一点是要阻止表单提交默认行为,开发过表单提交前验证的应该都知道怎么做。有困难的一点是评论嵌套,因为嵌套的深度有深度,而在边栏显示的评论你并不知道它是不是最后一层了,如果你对嵌套的最后一层评论回复了,那么这条新评论就会被当做主评论显示。我之前写过《完美解决WordPress嵌套回复的层深问题(无限嵌套)<一>》,看过的应该都知道,我是通过修改js调用脚本中传递的父级评论id值来使回复最后一层的评论在实际上嵌套到倒数第二层,这样就变相的实现了无限嵌套。
所以在解决边栏回复评论功能的嵌套问题是,我也是通过后台查询获取这条评论的嵌套深度,如果它是设置的最大深度了,就返回它的父一级评论的id,这样一来,也就解决了嵌套的问题。
这个功能的优势和局限性
这个功能会极大地方便访客间的交流,两人之间讨论某一问题,你不必一直在一个页面回复评论,你可以在博客的任何一个页面回复他人。甚至不用刷新页面,你只需要翻看边栏,最新的评论就会即时显示,你可以直接对其进行回复,并且是嵌套回复。
当然,局限性也有,主要是不能回复博主的评论,因为最新评论并不显示博主的评论,所以普通访客就不能及时在侧边栏回复博主了。
有兴趣的可以在边栏回复测试,可以在最新评论处翻看找到一个名叫liuqiqi的发表的评论,大家可以对她进行回复测试。liuqiqi就下面这人,一个总是第一时间发表“美美的沙发。。。”的人。在最新评论处翻到她后,点击蓝色右向双箭头(如下图蓝色圆圈中),进入单条评论查看模式(如上图),再点击“reply”即可进行回复。
![]()
想要取消回复或者回复成功后想要返回,可以点击下图中的back按钮返回最新评论列表。
你也不用担心在边栏回复后返回记不清回复过谁了,因为你回复过的人会被记录下来,在刷新页面前,你只能对一个人回复一次。
另外我的日志下方的评论回复也换上了自己的,功能还很简单,原生JS的。
