
数据主要是用mui 封装好的ajax获取json数据,然后用js拼接,把html代码加载到页面。
mui框架基于htm5plus的XML>
在项目开发中遇到这样的功能,要求实现列表页动态加载功能,在实现过程中遇到一些小小插曲,下面小编给大家详细说明下解决方法:
首次加载时可以获取成功,再次加载失败,通过chrome调试发现img
的
data-lazyload
属性没改变
调试的时候发现了bug
$fnimageLazyload
=
function(options)
{
var
lazyloadApis
=
[];
thiseach(function()
{
var
self
=
this;
var
lazyloadApi
=
null;
if
(self
===
document
||
self
===
window)
{
self
=
documentbody;
}
//对,bug就在这,判定时如果body已有该属性,就不在加载了,整体的代码没看明白,注释太少了啊
var
id
=
selfgetAttribute('data-imageLazyload');
if
(!id)
{
id
=
++$uuid;
$data[id]
=
lazyloadApi
=
new
ImageLazyload(self,
options);
selfsetAttribute('data-imageLazyload',
id);
}
else
{
lazyloadApi
=
$data[id];
}
lazyloadApispush(lazyloadApi);
});
return
lazyloadApislength
===
1
lazyloadApis[0]
:
lazyloadApis;
}
问题找到了,那么就在再次加载数据时,清除该属性就ok了
documentbodyremoveAttribute('data-imagelazyload');
mui(document)imageLazyload({
placeholder:
'//images/img_head3png'
});
以上所述是小编给大家介绍的MUI
解决动态列表页懒加载再次加载不成功的bug问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
DOM结构
关于mui页面的dom,你需要知道如下规则。
固定栏靠前
所谓的固定栏,也就是带有mui-bar属性的节点,都是基于fixed定位的元素;常见组件包括:顶部导航栏(mui-bar-nav)、底部工具条(mui-bar-footer)、底部选项卡(mui-bar-tab);这些元素使用时需遵循一个规则:放在mui-content元素之前,即使是底部工具条和底部选项卡,也要放在mui-content之前,否则固定栏会遮住部分主内容;
### 一切内容都要包裹在mui-content中
除了固定栏之外,其它内容都要包裹在mui-content中,否则就有可能被固定栏遮罩,原因:固定栏基于Fixed定位,不受流式布局限制,普通内容依然会从top:0的位置开始布局,这样就会被固定栏遮罩,mui为了解决这个问题,定义了如下css代码:
[css] view plain copy
mui-bar-nav ~ mui-content {
padding-top: 44px;
}
mui-bar-footer ~ mui-content {
padding-bottom: 44px;
}
mui-bar-tab ~ mui-content {
padding-bottom: 50px;
}
你当然可以通过自定义CSS的方式实现如上类似效果,但为了使用简便,建议将除固定栏之外的所有内容,全部放在mui-content中。
始终为button按钮添加type属性
若button按钮没有type属性,浏览器默认按照type=submit逻辑处理,这样若将没有type的button放在form表单中,点击按钮就会执行form表单提交,页面就会刷新,用户体验极差。
窗口管理
页面初始化:必须执行muiinit方法
mui在页面初始化时,初始化了很多参数配置,比如:按键监听、手势监听等,因此mui页面都必须调用一次muiinit()方法;
页面跳转:抛弃href跳转
当浏览器加载一个新页面时,若页面DOM尚未渲染完毕,页面会先显示空白,然后等DOM渲染完毕后,再显示具体内容,这是WEB浏览器技术无法逾越的体验障碍;为解决这个问题,建议使用[muiopenWindow方法](>
<!--下拉刷新容器-->
<div id="refreshContainer" class="mui-content mui-scroll-wrapper">
<div class="mui-scroll">
<!--数据列表-->
<ul class="mui-table-view mui-table-view-chevron">
<li onclick="alert(1111)">bbb</li>
<li onclick="alert(1111)">bbb</li>
<li onclick="alert(1111)">bbb</li>
<li onclick="alert(1111)">bbb</li>
</ul>
</div>
</div>
<script type="text/javascript">
muiinit({
gestureConfig: {
tap: true, //默认为true
doubletap: true, //默认为false
longtap: true, //默认为false
swipe: true, //默认为true
drag: true, //默认为true
hold: false, //默认为false,不监听
release: false //默认为false,不监听
},
pullRefresh: {
container: "#refreshContainer", //下拉刷新容器标识,querySelector能定位的css选择器均可,比如:id、class等
down: {
contentdown: "下拉可以刷新", //可选,在下拉可刷新状态时,下拉刷新控件上显示的标题内容
contentover: "释放立即刷新", //可选,在释放可刷新状态时,下拉刷新控件上显示的标题内容
contentrefresh: "正在刷新", //可选,正在刷新状态时,下拉刷新控件上显示的标题内容
callback: function() { //必选,刷新函数,根据具体业务来编写,比如通过ajax从服务器获取新数据;
}
}
}
});
</script>
以上就是关于mui使用什么数据库全部的内容,包括:mui使用什么数据库、获得mui-upload上传行数、MUI 解决动态列表页图片懒加载再次加载不成功的bug问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)