mui 上拉加载更多的使用
最近工作之余在用mui的框架开发,对mui了解了一些。在真正的app开发项目中,mui上拉加载模块中有两个坑,现在说一下。
1、在函数自己上拉加载行为后的回调函数
该函数是必须要写的,用来写自己的逻辑需求,但是一般情况下,需要设置显示为“加载更多”还是“没有更多数据了”。
看了一些博客和官方文档,基本上都把这个设置放在了定时器中
在定时器中调用获取数据的方法(自己的业务需求)
2、在mui封装的上拉加载中,点击某一项会失效。这个是真的很坑。不过网上也有解决方法。就是采用事件监听的方式,阻止默认行为
mui('选择器').on('tap','选择器',function(e){
e.preventDefault();
//自己的业务逻辑
})
一开始我将上述代码放在了mui.plusready()函数里面,可是事件并没有触发,所以,当我将它mui.plusready()中拿出来,事件就起作用了,我并不知道这是为什么,如果你偶尔看到这篇文章,可以告诉我一下。
我将这个使用demo放在了自己的gitHub上,网址:https://github.com/dreamITGirl/projectStudy/blob/master/html/mui%E4%B8%8A%E6%8B%89%E5%8A%A0%E8%BD%BD.html
在博客中也贴一下代码
<!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>
mui 上拉加载更多的使用的更多相关文章
- mui 上拉加载更多
看起来很简单的东西,实践过程中还是出现了很多麻烦,比如上拉时,状态条跑到了顶部,因为内容没有添加到容器中,再比如下拉的回调函数使用问题,this的传递. html实现部分: <div class ...
- mui的上拉加载更多 下拉刷新 自己封装的demo
----------------------------------------------- 这是一个非常呆萌的程序妹子,深夜码的丑代码------------------------------- ...
- mui实现分页上拉加载更多 下拉刷新数据的简单实现 移动端下拉上拉
空下来把mui上拉加载更多,下拉刷新数据做了一个简单的实现,希望可以帮助到需要的朋友 demo项目的结构 <!DOCTYPE html> <html> <head> ...
- mui 上拉加载 实现分页加载功能
mui 上拉加载 实现分页加载功能,效果图: 分页功能(上拉加载): 1.引入需要的css.js文件 <link href="static/css/mui.css" rel= ...
- 原生js移动端touch事件实现上拉加载更多
大家都知道jQuery里没有touch事件,所以在移动端使用原生js实现上拉加载效果还是很不错的,闲话不多说,代码如下: //获取要操作的元素 var objSection = document.ge ...
- H5基于iScroll实现下拉刷新,上拉加载更多
前言 前一段有个手机端的项目需要用到下拉刷新和上拉加载更多的效果,脑海里第一反映就是微博那种效果,刚开始的理解有些偏差,以为下拉也是追加数据,上拉也是追加数据,后请教同事后发现其实下拉只是刷新最新数据 ...
- 常见开发需求之angular上拉加载更多
需求 移动端使用angular实现上拉加载更多的条目,这个需求比较常见,网上的插件改动起来比较麻烦,不如自己写一个最适合,以前有同事写了一个,奈何bug太多,后来改分页了,我们产品说什么都让做,没 ...
- ListView实现Item上下拖动交换位置 并且实现下拉刷新 上拉加载更多
ListView实现Item上下拖动交换位置 并且实现下拉刷新 上拉加载更多 package com.example.ListViewDragItem; import android.app.Ac ...
- ionic 上拉加载更多&瀑布流加载&滚动到底部加载更多 主意事项
首先下拉刷新的代码是这样的,标红的地方为关键代码 <html> <head> <meta charset="utf-8"> <meta n ...
随机推荐
- leetcode 35 Search Insert Position(二分法)
Given a sorted array and a target value, return the index if the target is found. If not, return the ...
- linux命令学习笔记(58):telnet命令
telnet命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族 中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用 ...
- 通过nginx搭建hls流媒体服务器
通过录像文件模拟直播源,通过rtmp协议推送到nginx服务器 nginx 配置文件 增加 rtmp { server { listen 1935; application hls { live on ...
- MongoDB优化之三:如何排查MongoDB CPU利用率高的问题
遇到这个问题,99.9999% 的可能性是「用户使用上不合理导致」,本文主要介绍从应用的角度如何排查 MongoDB CPU 利用率高的问题. Step1: 分析数据库正在执行的请求 用户可以通过 M ...
- openstackM版本安装
部署期间常见问题:http://www.cnblogs.com/bfmq/p/6001233.html,问题跟对架构的理解永远比部署重要!你玩技术是绝对是要基于理论的 一.基本情况:物理设备:4台惠普 ...
- Python-IO模式介绍
事件驱动模型:有个事件队列,把事件放到队列里,然后循环这个队列,取出事件执行 5种IO模式: 阻塞 I/O(blocking IO) 非阻塞 I/O(nonblocking IO) I/O 多路复用( ...
- oop的方式来操纵时间
减少return 减少传参. 主要是在调用上比以前强大很多,以前很怕操作时间,在一堆函数中传来传去.这个调用爽. class DatetimeConverter: DATETIME_FORMATTER ...
- springMVC绑定json参数之二(2.2.2)
二.springmvc 接收不同格式的json字符串 2).格式二:json字符串数组 前台: test = function () { var test = ["123",&qu ...
- C# 判断路径和文件存在
1.判断路径是否存在,不存在则创建路径: if (!System.IO.Directory.Exists(@"D:\Export")) { System.IO.Directory. ...
- 【Redis】Redis事务详解,Redis事务支持回滚(不支持悲观锁)
1.redis事物参考:https://baijiahao.baidu.com/s?id=1613631210471699441&wfr=spider&for=pc (php操作red ...