demo地点
mui框架中上拉加载的坑
1、在函数本身上拉加载行动后的回调函数
2、在mui封装的上拉加载中,点击某一项会失效。
解决要领
1、该函数是必须要写的,用来写本身的逻辑需求,然则平常情况下,须要设置显现为“加载更多”照样“没有更多数据了”。看了一些博客和官方文档,基本上都把这个设置放在了定时器中并在定时器中挪用猎取数据的要领(本身的营业需求)。
2、在mui封装的上拉加载中,点击某一项会失效。这个是真的很坑。就是采纳事宜监听的体式格局,阻挠默许行动
示例代码
mui('选择器').on('tap','选择器',function(e){
e.preventDefault();
//本身的营业逻辑
})
一开始我将上述代码放在了mui.plusready()函数内里,但是事宜并没有触发,所以,当我将它mui.plusready()中拿出来,事宜就起作用了,我并不知道这是为何,假如你偶然看到这篇文章,能够告诉我一下。
demo代码
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0"/>
<script>
window.onload = function () {
/*750代表设想师给的设想稿的宽度,你的设想稿是若干,就写若干;100代表换算比例,这里写100是
为了今后好算,比方,你丈量的一个宽度是100px,就能够写为1rem,以及1px=0.01rem等等*/
getRem(750, 100)
};
window.onresize = function () {
getRem(750, 100)
};
function getRem(pwidth, prem) {
var html = document.getElementsByTagName("html")[0];
var oWidth = document.body.clientWidth || document.documentElement.clientWidth;
html.style.fontSize = oWidth / pwidth * prem + "px";
}
</script>
<link rel="stylesheet" href="../css/mui.min.css"/>
<link rel="stylesheet" href="../css/reset.css"/>
<title>关于mui的上拉加载</title>
<style>
.mui-content {
background: #fff;
}
h2 {
font-size: 0.28rem;
line-height: .6rem;
padding-left: 10px;
}
.mui-scroll-wrapper {
top: .75rem;
}
</style>
</head>
<body>
<div class="mui-content">
<h2>上拉加载</h2>
<div class="mui-scroll-wrapper" id="pullRefresh">
<div class="mui-scroll">
<ul class="mui-table-view" id="listContainer">
<li class="mui-table-view-cell">
list1
</li>
<li class="mui-table-view-cell">
list2
</li>
<li class="mui-table-view-cell">
list3
</li>
<li class="mui-table-view-cell">
list4
</li>
</ul>
</div>
</div>
</div>
<script src="../js/jquery-2.1.3.min.js"></script>
<script src="../js/mui.min.js"></script>
<script>
(function ($, doc) {
var listContainer = doc.getElementById('listContainer');
mui.init({
pullRefresh: {
container: '#pullRefresh',//待革新地区标识,querySelector能定位的css选择器都可,比方:id、.class等
up: {
height: 50,//可选.默许50.触发上拉加载拖动间隔
auto: true,//可选,默许false.自动上拉加载一次
contentrefresh: "正在加载...",//可选,正在加载状况时,上拉加载控件上显现的题目内容
contentnomore: '没有更多数据了',//可选,要求终了若没有更多数据时显现的提示内容;
callback: pullfreshFunc //必选,革新函数,依据详细营业来编写,比方经由过程ajax从服务器猎取新数据;
}
}
});
var flag = true, counter = 1, pageSize = 10;
function pullfreshFunc() {
setTimeout(function () {
mui('#pullRefresh').pullRefresh().endPullupToRefresh(flag);//参数为true代表没有更多数据了。
getData();
}, 500);
}
function getData() {
mui.ajax({
type: 'get',
url: '../json/data.json',
data: {'counter': counter},
success: function (response) {
console.log(response);
let list = response.peopleList;
let html = "";
flag = !(list[0] == null || list[0] == "" || !list[0]);
if (flag) {
counter++;
}
for (let i = 0; i < list.length; i++) {
html += '<li class="mui-table-view-cell">' + list[i].name + '</li>';
}
jQuery('#listContainer').append(html)
},
error: function (error) {
console.log(error)
}
})
}
//点击单项事宜
// mui中上拉加载中的坑1:点击事宜失效(不须要放在mui.plusReady()中)
mui('#pullRefresh').on('tap', 'li.mui-table-view-cell', function (e) {
e.preventDefault();
console.log('触发点击事宜了')
})
}(mui, document))
</script>
</body>
</html>