移动端-jquery Ajax执行滑动到底部进行加载 指定加载次数
过完年了,又要有新的项目了,趁暴风雨前的宁静,就把之前让我挺头疼的ajax加载给总结了一下。在此分享。
声明下:笔者对于ajax也是新手,如有更好的写法或可以优化的写法,还望指正!
项目需求:
移动端访问,进行选择答题,初始为五道题,当滑动到底部的时候,会有一个提示,向下滑动继续答题。
滑动后ajax加载,每次加载五道题。加载出十五道题的时候,停止加载,并隐藏提示,显示出 提交答案的按钮。
(给人感觉永远答不完题一样,感觉这种需求纯属扯淡)
但是再扯淡也得实现不是..直接贴代码:我个人感觉写的复杂了,但是可以实现效果,发这个博文的目的还是想得到斧正。
<script src="js/jquery.js" type="text/javascript"></script>
<script>
//创建页码,每次获取ajax 页码+1,达到指定页码后停止加载
if (2<2) {
var currentpage=0;
var totalpage=50;
var maxpage=2;
} else{
var currentpage=4-4;
var totalpage=50;
var maxpage=2;
}; $(document).ready(function(){ $(window).scroll(function(){
var scrollTop = $(this).scrollTop(); //滚动条距离顶部的高度
var scrollHeight = $(document).height(); //当前页面的总高度
var windowHeight = $(this).height(); //当前可视的页面高度 if(scrollTop + windowHeight >= scrollHeight){ //距离顶部+当前高度 >=文档总高度 即代表滑动到底部
ajaxRed(); //开始加载ajax
if(currentpage ==2){ //如果加载ajax达到2次 停止加载
$(".down_move").hide(); //提示滚动 图片隐藏
$(".submit_btn").css("display","block"); //提示可以提交该表单按钮出现。
return false; //如果条件满足 停止运行该判断
}
}
}); function ajaxRed(){ $("#loading_text").ajaxStart(function(){ //ajax开始执行(此方法必须jquery1.6版本及以下可以使用,高版本不支持)
$(this).show();
}).ajaxStop(function(){ //ajax结束执行(此方法必须jquery1.6版本及以下可以使用,高版本不支持)
$(this).hide();
});
currentpage++; //执行成功页码+1
if (currentpage>=totalpage || currentpage>maxpage){
return currentpage; //判断页码是否达到限定的加载次数;
return false;
}
var html=""; $.getJSON("json.php",function(json){ //获取json
if(json){ //每次加载五道题目
$.each(json,function(index,array){
var str = "<tr><td><h2>"+array["tiMu"]+"</h2></td></tr>";
str += "<tr><td><p><input type='radio' class='radio_input' name='"+array['radio_name']+"' />"+array["a"]+"</p></td></tr>";
str += "<tr><td><p><input type='radio' class='radio_input' name='"+array['radio_name']+"' />"+array["b"]+"</td></tr>";
str += "<tr><td><p><input type='radio' class='radio_input' name='"+array['radio_name']+"' />"+array["c"]+"</td></tr>";
str += "<tr><td><p><input type='radio' class='radio_input' name='"+array['radio_name']+"' />"+array["d"]+"</td></tr>";
$(str).appendTo("#table_more"); //将生成的文本追加到ID table_more子级最后面
});
}
}); return currentpage; //返回执行后的页码数 }
});
下来是php
<?php
$arr = array(
array(
'tiMu'=>'6、题目',
'radio_name'=>'name_6',
'a'=>'A. 化学药品',
'b'=>'B .生物制品',
'c'=>'C .中药饮片',
'd'=>'D .中草药'
),
array(
'tiMu'=>'7、题目',
'radio_name'=>'name_7',
'a'=>'A. 化学药品',
'b'=>'B .生物制品',
'c'=>'C .中药饮片',
'd'=>'D .中草药'
),
array(
'tiMu'=>'8、题目',
'radio_name'=>'name_8',
'a'=>'A. 化学药品',
'b'=>'B .生物制品',
'c'=>'C .中药饮片',
'd'=>'D .中草药'
),
array(
'tiMu'=>'9、题目',
'radio_name'=>'name_9',
'a'=>'A. 化学药品',
'b'=>'B .生物制品',
'c'=>'C .中药饮片',
'd'=>'D .中草药'
),
array(
'tiMu'=>'10、题目',
'radio_name'=>'name_10',
'a'=>'A. 化学药品',
'b'=>'B .生物制品',
'c'=>'C .中药饮片',
'd'=>'D .中草药'
),
);
$json = json_encode($arr);
echo $json;
?>
2014年2月17日
Margo
移动端-jquery Ajax执行滑动到底部进行加载 指定加载次数的更多相关文章
- JQuery Ajax执行过程AOP拦截
JQuery Ajax过程AOP:用于在Ajax请求发送过程中执行必备操作,比如加载数据访问令牌. $.ajaxSetup({ type: "POST", error: funct ...
- UI5-技术篇-jQuery.ajax执行过程中Token验证及JSON格式传值问题
最近两天在测试OData服务类方法CREATE_DEEP_ENTITY及GET_EXPANDED_ENTITYSET,刚开始采用ODataModel方式调用没有任何问题,但是ODataModel采用的 ...
- jQuery.Ajax()执行WCF Service的方法
Insus.NET有在上一篇<ASP.NET MVC呼叫WCF Service的方法>http://www.cnblogs.com/insus/p/3720547.html 直接呼叫WCF ...
- 移动端ios 输入框fixed固定在底部 焦点时乱跳加遮盖问题的解决 转自zhangyunling 加个人项目解决方案
如果您有过移动端的开发经验,那么您是否碰到过这样的问题,一个页面有输入框,当这个输入框聚焦时,输入框在IOS下,被移动到手机屏幕的当中去了,而在Android端,有些浏览器的输入框,会被键盘盖住. 1 ...
- Jquery ajax 与 lazyload的混合使用(实现图片异步加载)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- jquery Ajax应用总结
常见应用: 下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET&quo ...
- jquery ajax 前前后后,所有的函数并查询链接
jQuery Ajax 操作函数 jQuery 库拥有完整的 Ajax 兼容套件.其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据. 函数 描述 jQuery.ajax() 执行异步 H ...
- jQuery Ajax 操作函数及deferred对象
jQuery Ajax 操作函数 jQuery 库拥有完整的 Ajax 兼容套件.其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据. 函数 描述 jQuery.ajax() 执行异步 H ...
- jQuery Ajax 操作函数
jQuery Ajax 操作函数 jQuery 库拥有完整的 Ajax 兼容套件.其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据. 函数 描述 jQuery.ajax() 执行异步 H ...
随机推荐
- Swift—Cocoa错误处理模式-备
Swift错误处理模式,在Swift1.x和Swift 2.0是不同的两种模式. Swift 1.x代码错误处理模式采用Cocoa框架错误处理模式,到现在Objective-C还沿用这种处理模式,而S ...
- 路由器WDS桥接教程
因为有吧友买了此款路由又不会桥接,因此做这个教程.老鸟自动路过,废话不多说,下面开始讲解. 1.wifi密码破解和路由器用户名和密码部分请自行解决,我只讲桥接部分.首先,在浏览器里输入192.168. ...
- Owncloud中文目錄包裹下載
Owncloud提供私有雲端儲存環境的自由軟體解決方案,目前4.5版中文支援已經很完整,但是早期ZIP壓縮檔內的檔名不支援utf-8,所以使用ZIP格式下載整個目錄或多個檔案時大部分解縮軟體無法正確處 ...
- Web前端开发
由于互联网的各种兴起,网页开发似乎也火了,催生了github上各种js的轮子,各种重复,各种框架和库,什么Jquery,bootstrap等等.面对这么多框架和库我们在工程上该如何取舍(trade-o ...
- Java: for(;;) vs. while(true)
What is the difference between a standard while(true) loop and for(;;)? Is there any, or will both b ...
- 【HDOJ】3184 All Can Do
简单数学题. #include <cstdio> #include <cstring> #include <cstdlib> int main() { int t; ...
- unix网络编程之简介
通常客户一次只与一个服务器通信, 上图为:一个服务器同时处理多个客户的请求. 上图为:客户与服务器使用TCP协议在同一个以太网中通信. 路由器是广域网的架构设备.今天,最大的广域网是因特网. 上图为: ...
- (总结)工作中常用的js自定义函数——日期时间类
//设置时间类 var Wsdatatime = function(){ this.today = (new Date()).getTime(); //当前时间 } Wsdatatime.protot ...
- HDU_2049——部分错位排列,概率论
Problem Description 国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作是这样 ...
- DPDK2.1开发者手册1-2
Programmer’s Guide Release 2.1.0 翻译的目的是强化自己对dpdk的理解,看看2.1版本和现在使用的版本的差异,其次就是可能要走了,为那些要上手dpdk,但是又不想看英文 ...