jquery的getjson实现页面不刷新加载剩余数据方法事件

有了“用JS将一个div插入到指定的一个div中或后面”这篇文章的指引基础,下面还是以情景的模式来叙述怎样用JS做到不刷新加载剩余数据。

案例情景:

一个评论页面,先只显示了10条数据,我要通过js+ajax获取数据无刷新页面异步加载显示下一个10条数据,接着触发一次、显示10条,直到全部显示完整。

解决原理步骤:

1、首先要取得下一个10条评论数据字符串
2、然后将数据赋值到原先10条评论后面
3、同时更新剩余评论数显示、判断如果剩余数少于0则隐藏图标
完整HTML代码:(程序后台代码视情况自处理)
/*
开头说下代码中相应参数含义,不同程序情况会显示不一样,原理是一样的:
$comment_data  前10条评论数据、循环出来,里面具体参数不用管了
{$comment_num}  剩余评论数量
*/
<div id=”comments”>
<ul id=”c1″ class=”comment”>
{foreach from=$comment_data item=comment}
<li>
<p class=”ov”><img width=”30″ height=”30″ src=”{$comment.avatar}” class=”left” /><em>{$comment.username} </em></p>
<p class=”f14″>{$comment.content}</p>
</li>
{/foreach}
</ul>
{if $comment_num > 0}<div><a href=”javascript:void(0);” id=”ajax” class=”ajc b4 mt10″>点击加载更多<span id=”c_num”>{$comment_num}</span>条评论</a></div>{/if}
<input type=”hidden” id=”ajax_num” value=”1″/>
<input type=”hidden” id=”comment_num” value=”{$comment_num}”/>
</div>
<script type=”text/javascript”>
ajax.onclick = function() {
insertEle();//点击加载更多触发事件
}
function insertEle() {
var oTest = document.getElementById(“comments”);//获取评论外围div的id
var ajax_num = document.getElementById(“ajax_num”).value;//获取当前显示到第几页评论数据
var ajax_i = parseInt(ajax_num) + 1;//评论的下一页赋值,第一次加1代表获取第二页数据
var comment_num = document.getElementById(“comment_num”).value;//获取剩余评论数
var comment_i = parseInt(comment_num) – 10;//赋值加载后的剩余评论数
if(comment_num < 0 ){
document.getElementById(‘ajax’).style.display = “none”;//如果剩余评论数为0,直接隐藏返回
return;
}
/*以下3行创建新ul元素*/
var newNode = document.createElement(“ul”);
newNode.id = “c” + ajax_i;
newNode.className = “comment”;
/*以下为获取下一个10条评论数据的ajax处理方法,参考代码、视你的程序情况而定,注意将数据拼成<li>字符串*/
$.getJSON(“comment.php?act=ajax&g_id=” + {$goods_id} + “&page=” + ajax_i,
function(data) {
if (data.error == 0) {
newNode.innerHTML = data.content;//最后拼成的字符串数据
} else {
alert(“已经没有评论了!”)
}
})
var reforeNode = document.getElementById(“c”+ajax_num);
oTest.insertBefore(newNode,reforeNode.nextSibling);//将创建的元素,添加到c_1的后面
if(comment_i <= 0 ){
document.getElementById(‘ajax’).style.display = “none”;//如果加载数据后、剩余评论数少于0,则隐藏按钮
}
document.getElementById(“ajax_num”).value = ajax_i;//更新页数
document.getElementById(“comment_num”).value = comment_i;//更新评论数
document.getElementById(“c_num”).innerHTML = comment_i;//更新评论数显示
}
</script>

时间: 2025-01-02 16:38:24

jquery的getjson实现页面不刷新加载剩余数据方法事件的相关文章

php+jquery+html实现点击不刷新加载更多的实例代码_php实例

基本原理:页面载入时,jQuery向后台请求数据,PHP通过查询数据库将最新的几条记录显示在列表页,在列表页的底部有个"更多"链接,通过触发该链接,向服务端发送Ajax请求,后台PHP程序得到请求参数,并作出相应,获取数据库相应的记录并以JSON的形式返回给前台页面,前台页面jQuery解析JSON数据,并将数据追加到列表页.其实就是Ajax分页效果. HTML 首先要引入jquery库和jquery.more.js插件,jquery.more.js已经将许多功能都封装好了,并提供了参

php+jquery+html实现点击不刷新加载更多的实例代码

基本原理:页面载入时,jQuery向后台请求数据,PHP通过查询数据库将最新的几条记录显示在列表页,在列表页的底部有个"更多"链接,通过触发该链接,向服务端发送Ajax请求,后台PHP程序得到请求参数,并作出相应,获取数据库相应的记录并以JSON的形式返回给前台页面,前台页面jQuery解析JSON数据,并将数据追加到列表页.其实就是Ajax分页效果. HTML 首先要引入jquery库和jquery.more.js插件,jquery.more.js已经将许多功能都封装好了,并提供了参

js-点击A页面链接,B页面无刷新加载内容

问题描述 点击A页面链接,B页面无刷新加载内容 比如百度音乐,在A页面不管点击多少个音乐,都只打开一个B页面并且无刷新加载播放.怎么用JS和其它编程语言来实现? 解决方案 <a target='musicBox' href=""/music"">播放1</a><a target='musicBox' href=""/music"">播放2</a><a target='mus

JQuery的AJAX调用(一)——加载传递数据

 一,load方法异步请求数据        使用load()方法通过Ajax请求加载服务器中的数据,并把返回的数据放置到指定的元素中,它的调用格式为:        load(url,[data],[callback])       参数url为加载服务器地址,可选项data参数为请求时发送的数据,callback参数为数据请求成功后,执行的回调函数.              二,使用getJSON()方法异步加载JSON格式数据     使用getJSON()方法可以通过Ajax异步请求的

asp.net webform页面状态自动加载和保存方法 (1/2)

首先定义一个特性(attribute).我会将这个特性放到需要自动加载和保存的属性上,以便将这些需要处理的属性从所有的页面属性中筛选出来,做进一步处理.这个特性的定义如下: /// <summary> /// 自动保存属性. 能够实现字段或属性值的自动保存和加载. 该属性只在非静态字段或属性上才能生效. /// </summary> /// <remarks> /// 自动保存属性. 在页面类的属性上面加上该属性. 可以使得该字段或属性能够自动保存和自动加载. ///

浅析页面内容加载顺序的方法

很多时候,我们都想确认页面内容:html标签.css.js.图片等元素的加载顺序. 现在的浏览器基本都自带调试工具,下面就介绍下用chrome浏览器正确查看页面内容加载顺序的方法: F12打开开发人员工具,点击[Network](网络)的tab切换到页面元素加载内容查看标签,这里需要说明的是:在该面板未激活时的任何请求都不会被显示,这就是为什么 我们初始看到面板展示的是一片空白啦!要想查看页面内容加载顺序,必须重新加载下页面(f5,或保险起见ctrl+f),这样就可以快速查看到页面各内容加载顺序

ios异步加载表格数据及内容不能及时显示的问题

异步事件,就是说这一个代码或者代码块,并不会阻塞程序的运行,程序会立即执行下一条语句,而这条语句,会在相应的方法调用结束之后,执行它自身的回调函数发送一些信号,来表明这个异步事件完成.就像你约会提前1小时到见面地点,先去买点东西踩点什么的(--),等GF/BF到了之后短信通知你,你就立即回来.而不是一直在原地等到对方过来(--) 最早使用异步开发,是在使用JavaScript来开发Web前端的时候,XMLHttpRequest或者jQuery的$.ajax中,都会用到回调函数,来指明成功或者失败

使用Yii整合的pjax(pushstate+ajax)实现无刷新加载页面_AJAX相关

Pjax是啥? Pjax = history.pushState + Ajax = history.pushState + Async JS + XML(xhr?) BOM对象history被增强了一波,主要是对历史栈的操作,以前只有 replace , go 之类的,都会跳转并刷新整个页面,现在有了 pushState , replaceState 等等单纯操作历史栈的方法,只是单纯修改历史栈里的内容,没有副作用(页面不会跳转刷新) PJAX效果 通过url可以跟踪ajax的动态加载内容.这种

jquery实现界面无刷新加载登陆注册_jquery

官网的登陆注册每次要跳转到另一个界面,能不能做一个简单的,在界面弹出一个框框登陆,我想了想做了这么一个案例,大家来看看成不成 贴上代码,实现了在同一个弹出窗上加载了登陆注册功能!可自由点击!当然样式丑了一些!还请见谅!demo在下面 1这里是html内容 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transi