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

周一,2009 十一 30 23:27:19

相信大家都知道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加载效果就完成了。详细的效果可以点击侧边栏的分类导航。

   Await |  前端交互 |  浏览:3,843  

这篇文章已有 49 位网友发表了评论  

  1. zero 说:

    谢谢分享,我尝试一下

  2. leetom 说:

    这个阅读全文功能浏览器兼容性不好。ie8下就不能使用。

  3. 阅网博客 说:

    好的 谢谢分享 收藏了!

  4. 额朋友真多。。。

  5. 时尚资讯 说:

    有点复杂,还是不用吧。要么来个插件。

  6. jojo 说:

    学习了,支持!

  7. joyla 说:

    太帅了!我就在使用!

评论分页 1 ... 3 4 5

发表新的评论

表情
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空格'的方式将自己的评论通知另外评论者。

goto-top