当前位置:

首页 > 前端交互

不刷新(AJAX)获取文章的内容

相信大家都知道AJAX评论这玩意。AJAX评论带来了很多好处,不用在刷新页面就能发表评论。实时提交,实时显示。很多人都用上了都给自己的BLOG上添加了这样的功能。方法在这就不说了,很多人都作了详细的讲解。在这想跟大家分享下。AJAX加载文章的内容。当然,这里还是基于JQ的load方法来实现。OK,来看效果:

load1

load2

load3

首先,定义三个变量:

  1. var objTag= $(".post");//定义要获取内容所在的节点
  2. var num= objTag.length;//定义节点的数量
  3. var _cache=new Object;//建立一个缓存对像

然后构建一个加载的函数:

  1. function loadentry(n){
  2.     var _url=$(objTag[n]).children(".archive-post-title").children("h2").children("a").attr("href");//定义要加载文章的地址
  3.     $('<div class="details"><div style="width:160px;margin-top:8px;padding:0 2px;font-size:12px;background: #01E343; color:#FFF;">正在加载文章内容,请稍等!</div></div>').insertBefore($(objTag[n]).children(".singledata"));//插入提示信息
  4.     if(_cache[_url]==null){//判断是否有缓存
  5.         $(objTag[n]).children(".details").load(_url+" .post .entry",function(){
  6.             _cache[_url]=$(objTag[n]).children(".details").html();
  7.             $('<span class="archive-arrow"><span title="收起全文" class="hide fRight" onclick="closentry(&quot;'+n+'&quot;);">收起全文↑</span></span>').insertAfter($(objTag[n]).children(".details"));
  8.         });//加载文章内容
  9.     }else{
  10.         $(objTag[n]).children(".archive-post-title").children(".archive-arrow").remove();
  11.         $(objTag[n]).children(".details").html(_cache[_url]);//直接显示缓存对像的内容
  12.         $('<span class="archive-arrow"><span title="收起全文" class="hide fRight" onclick="closentry(&quot;'+n+'&quot;);">收起全文↑</span></span>').insertAfter($(objTag[n]).children(".details"));
  13.     }
  14.     $(objTag[n]).children(".archive-post-title").children(".archive-arrow").remove();
  15. }

这部分对于不懂JQ的人来说可能有点复杂。懂JQ的人看起来一定很简单。就是一个对DOM的操作。通过动态的插入清除节点来实现我们需要的效果。关健在于“.load()”的用法。

到这已经实现了加载了。接着需要做个删除也就是收起全文;相比加载,删除要简单的多了,就是直接删除节点就行了。

  1. function closentry(n){
  2.     $(objTag[n]).children(".details").animate({height: 'toggle'}, "slow",function(){$(this).remove()});
  3.     $(objTag[n]).children(".archive-arrow").remove();
  4.     $('<div class="archive-arrow"><span title="阅读全文" class="show" onclick="loadentry(&quot;'+n+'&quot;);">阅读全文↓</span></div>').insertAfter($(objTag[n]).children(".archive-post-title").children("p"));
  5. }

这段代码就是一个基本的节点操作。在这就不作说明了;当然,最后我们需要插入节点并绑定事件。

  1. $(document).ready(function(){
  2.     for(a=0;a<num;a++){
  3.         $(objTag[a]).children(".archive-post-title").children(".archive-arrow").append('<span class="show" title="阅读全文" onclick="loadentry(&quot;'+a+'&quot;);">阅读全文↓</span>');
  4.     }
  5. });

OK,到这里这个AJAX加载效果就完成了。详细的效果可以点击侧边栏的分类导航。

本文引用地址: 

上一篇:WordPress评论表单验证 下一篇:

相关文章

  • 2008-11-27 -- 给你的侧边栏添加一个登陆入口 (11)
    个人一直觉得wordpress的登陆很麻烦,要打开一个新窗口才行。而且默认的那个窗口看起来并不怎么漂亮。所以决定给它整整,搞个适合偶主题的登陆框才行。之前我已经写过一篇文章,但那个是用jQuery实现...
  • 2008-09-15 -- jquery基础教程二[伸缩、隔行变色...] (3)
    在上一篇介绍中已经讲了一些基本的应用,今天继续。先看一下面这个例子 Demo_5:收缩展开功能[如无法运行请多刷新几次或保存到本地运行] 可伸缩块 p,d...
  • 2008-09-11 -- jquery基础教程一[click,addClass,show,hide] (3)
    原创内容—转载请说明出处. jQuery我想很多人都知道,但用WP的好像很少有人说到这个。今天开始和大家一起来研究下如何用jQuery来为我们的WP添加实用的功能。至于jQuery的相关背景和资...
  • 2008-08-28 -- 利用WP自带的JS库打造超酷的侧边栏 (5)
    从这篇文章开始,我们来认识下wordpress自带的JS库,下面这张图是WP自动的JS文件夹。可以看出有很多JS文件,当然包括大名鼎鼎的jquery和prototype。利用这些我们能实现很多很酷的效...
  • 2009-11-28 -- WordPress评论表单验证 (10)
    wordpress的评论只是个很简单的表单。WP本身也有一个自身的验证系统。但自带的这个验证是基于后台的验证。当表单不符合规格时跳转到另一个页面。我们需要返回上一页才能继续填写表单。这样对于用户的体验...

发表评论24 位网友发表了评论  

  1. 仁心博客 说:

    技术文章…………

  2. 皓辰.. 说:

    曾经在木木那里学到过,再看一遍
    对了,我的昵称是两个字的,为什么非要我输入三个字

  3. MeeSii 说:

    嗯嗯。你的主题很好看。。

评论分页 1 2 3

添加新的评论浏览评论»  

表情
icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif 



注意:
1、本站启用了审核机制,你的留言可能稍后才会显示,请不要重复提交,谢谢。
2、留言时的头像是Gravatar提供的服务。想设置的看这里
3、评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。