mui上拉加载
最近在做移动端的项目,用到了mui的上拉加载,整理如下:
1、需要引入的css、js
<link rel="stylesheet" href="common/mui/css/mui.min.css">
<script src="js/jquery-3.2.0.min.js"></script>
<script src="common/mui/js/mui.min.js"></script>
2、静态页的dom结构
<div id="pullrefresh" class="mui-content mui-scroll-wrapper" class="maincon">
<div class="mui-scroll">
<div class="mui-table-view mui-table-view-chevron">
</div>
</div>
</div>
3、静态页面 js对应的代码
<script type="text/javascript">
(function(){
//上拉加载下拉刷新
mui.init({
pullRefresh: {
container: '#pullrefresh',
up: {
contentrefresh: '正在加载...',
callback: pullupRefresh
}
}
});
//加载更多
var dataNum=12;//获取数据总数
var pageSize=3;//每页显示条数
var counter=1;//计数器
var pageStart=0;//开始数据条数
getData(pageStart,pageSize);
function getData(pageStart,pageSize){
//显示数不足每页显示条数
if(dataNum-pageStart<pageSize){
pageSize=dataNum-pageStart;
data(pageStart,pageSize);
console.log("显示数不足每页显示条数");
}
//显示隐藏加载更多
else if(pageStart+pageSize>=dataNum){
data(pageStart,pageSize);
console.log("没有更多数据了");
//没有更多数据了
}else{
data(pageStart,pageSize);
console.log("显示dataNum"+dataNum+"pageSize"+pageSize+"pageStart"+pageStart);
//显示
}
}
function data(pageStart,pageSize){
//业务
var result="";
for(var i=pageStart;i<(pageStart+pageSize);i++){
result+='<div class="goode-msg">'+
'<div class="goods">'+
'<p class="goode-name">呜呜呜呜</p>'+
'<span class="goods-price">价格:10元</span>'+
'<span class="icon-golden"></span>'+
'<span class="goods-golden">送1111</span>'+
'</div>'+
'<div class="buycon">'+
'<a class="buybtn buybtnabled" onclick="shop(5)">立即购买</a>'+
'</div>'+
'</div>'
}
console.log(jQuery);
jQuery(result).insertBefore('#pullrefresh .mui-scroll .mui-table-view');
}
/**
* 上拉加载具体业务实现
*/
function pullupRefresh() {
setTimeout(function() {
var flag=counter++<(dataNum/pageSize)
console.log(dataNum/pageSize);
mui('#pullrefresh').pullRefresh().endPullupToRefresh((!flag)); //参数为true代表没有更多数据了。
var scroll = document.body.querySelector('.mui-scroll .mui-table-view');
var item = document.body.querySelectorAll('.goode-msg');
console.log(counter);
if(flag){
console.log(counter);
pageStart=counter*pageSize;
data(pageStart,pageSize);
}
}, 1500);
}
})();
</script>
4、与服务端联调时 js做了改动,如下:
//加载更多
var pageSize = 15;//每页显示条数
var counter = 1;//计数器
var pageStart = 0;//开始数据条数
var Flag=true; data(); function data() {
//业务
var result = "";
$.ajax({
type: 'post',
url: '/xxx/xxx',
async: false,
dataType: "json",
data: {page: counter},
success: function (data) {
Flag=data[0].dd==null||data[0].dd==undefined||data[0].dd=='';
//判断是否有返回值 当没有返回值的时候就为空,则代表没有更多数据了
console.log(Flag);
if(Flag==false){
counter++;
}
$.each(data[0].dd, function (i, value) {
result += '<div class="goode-msg">' +
'<div class="goods">' +
'<input type="hidden" class="id" value="'+value.id+'">' +
'<input type="hidden" class="aa" value="'+value.aa+'">' +
'<p class="goode-name" id="title'+value.id+'">'+value.title+'</p>' +
'<input type="hidden" class="goods-price-cent" value="'+value.price.cent/100+'">' +
'<span class="goods-price">价格:<b id="price'+value.id+'">'+value.price.cent/100+'</b>元</span>' +
'<span class="icon-golden"></span>' +
'<span class="goods-golden">送<b id="ss'+value.id+'">'+value.ss+'</b>ss</span>' +
'</div>' +
'<div class="buycon">' +
'<a class="buybtn buybtnabled" onclick="shop('+i+')">立即购买</a>' +
'</div>' +
'</div>'
}); jQuery(result).insertBefore('#pullrefresh .mui-scroll .mui-table-view');
//注意:此处属于异步获取DOM
在列表中的所有事件应放在此处,防止dom节点获取失败。
$(".buytap").on("tap",function(){
var index = $(this).find(".buybtnid").text();
shop(index);
})
}
}
); }
/**
* 上拉加载具体业务实现
*/
function pullupRefresh() {
setTimeout(function () {
mui('#pullrefresh').pullRefresh().endPullupToRefresh((Flag)); //参数为true代表没有更多数据了。
data();
}, 1500);
}
})();
5、踩的坑
注意:一定要先引入jquery、mui.js否则 js代码会不识别mui。
在jquery中,如果要给动态生成的节点绑定事件,以前要用live,现在用delegate或者on,原理是利用冒泡实现事件委托,也就是给生成节点的父节点预先绑定事件。
mui上拉加载的更多相关文章
- mui 上拉加载更多的使用
最近工作之余在用mui的框架开发,对mui了解了一些.在真正的app开发项目中,mui上拉加载模块中有两个坑,现在说一下. 1.在函数自己上拉加载行为后的回调函数 该函数是必须要写的,用来写自己的逻辑 ...
- mui 上拉加载 实现分页加载功能
mui 上拉加载 实现分页加载功能,效果图: 分页功能(上拉加载): 1.引入需要的css.js文件 <link href="static/css/mui.css" rel= ...
- jquery 和 mui 上拉加载
jquery: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <m ...
- mui 上拉加载更多
看起来很简单的东西,实践过程中还是出现了很多麻烦,比如上拉时,状态条跑到了顶部,因为内容没有添加到容器中,再比如下拉的回调函数使用问题,this的传递. html实现部分: <div class ...
- MUI - 上拉加载不执行
mui('#pullrefresh').pullRefresh().refresh(true); if($(".list-item").length == countDataSum ...
- mui 上拉加载
最近做到移动端页面的开发,需要mui 的上拉刷新功能,最后实现后整理代码如下: 1.需要引入的js <link href="../resource/css/mui.min.css&qu ...
- MUI上拉加载下拉刷新
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- mui上拉加载会影响页面中的某些点击事件
项目是vue写的(移动端) <div class="mui-scroll"> <a :href="bannerinfo.activity_url&quo ...
- mui的上拉加载更多 下拉刷新 自己封装的demo
----------------------------------------------- 这是一个非常呆萌的程序妹子,深夜码的丑代码------------------------------- ...
随机推荐
- 如何用PHP做到页面注册审核
用户注册后就有该条用户记录,你对用户表设一个"审核状态"字段,默认值设为"未审核",然后你写几句审核代码做成一个功能,按照你们的意愿若审核通过你把审核状态改为& ...
- android性能优化的一些东西
说到android性能优化,总觉得是一个很模糊的东西,因为app的性能始终适合手机本身的性能挂钩的,也许一些消耗内容的操作,在一些移动设备可以运行,但是在另外一些上面就会出现内存溢出的问题,但是不管怎 ...
- tp框架知识 之(链接数据库和操作数据)
框架有时会用到数据库的内容,在"ThinkPhp框架知识"的那篇随笔中提到过,现在这篇随笔详细的描述下. 一.链接数据库 (1)找到模块文件夹中的Conf文件夹,然后进行编写con ...
- Servlet中表单的重复提交
1.用户登录页面: ->设置一个UUID到session中 ->将UUID添加到隐藏域中,提交到服务器 <% //进入页面,设置一个UUID,将UUID添加到session中 Str ...
- 使用awk截取某时间段的日志
想要取出文件里面时间是9点到12点的数据,文件内容如下: 2012-09-05 01:48:47,150 WARN [WorkManager(3)-72] [service.PhoneRangeMa ...
- (102, "Incorrect syntax near '-'.DB-Lib error message 102, severity 15:\nGen
python 调用MSSQL存储过程,运行时报错 sql="exec spname %s,%s"%(param1,param2) 这是错误的调用存储过程的语句,param1和par ...
- 10分钟精通SharePoint - SharePoint定位
平台 – "一栋楼房的框架结构" 扩展 – "用户可以根据自己需要随意装修房间"集成 – "插拔式的系统集成能力"业务– "既是全 ...
- java自加和自减
public class Add { public static void main(String[] args) { int i = 0; i=i++ + ++i; int j = 0; j= ++ ...
- C# const和readonly修饰符的区别
const 的概念就是一个包含不能修改的值的变量.常数表达式是在编译时可被完全计算的表达式.因此不能从一个变量中提取的值来初始化常量.如果 const int a = b+1;b是一个变量,显然不能再 ...
- Ubuntu部署Jupyter
前言 Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言.在本文中,我们将介绍 Jupyter notebook 的主要特 ...