完全按着官方示例,
只是响应了 mui-table-view-cell 的tap事件,console.log一条消息,
结果 经常响应不到 这个tap事件,特别是 最上面几个mui-table-view-cell的tap事件
不过,mui-table-view-cell tap时候自身的颜色变化效应还是有的
如果取消下拉事件,只有上拉,tap事件基本无误,和普通的mui-table-view是一样的
搞了几天了,头疼。在问答这里搜索,没有类似问题,看来问题不普遍,应该是我的可能是手机系统的问题。后来换了一个moto的自带系统android2.3反而没有这个问题。
有问题的手机 华为 EMUI3.0( android 4.4),
不知道官方还进行相关的检测不?
另外,有没有遇到此类问题的战友,该如何解决?
如果不能官方兼容,是否能知道一下如何修改mui代码:
tap时,mui-table-view-cell的颜色变化效果还是有的,请问这个颜色变化效果怎么实现的,是响应的是哪个事件?
我实在是看不懂mui源代码,请大神们多指点一下了
多谢多谢!
附件 是的工程文件,里面4个子窗口:
- no: 单纯table-view 不用下拉, tap正常
- all: 下拉上拉都有,tap不正常
- up 只上拉,tap正常
- down 只下拉,tap不正常
下面是主要代码,和官方示例基本一致:
mui.init({
pullRefresh: {
container: '#pullrefresh',
down: {
callback: pulldownRefresh
},
up: {
contentrefresh: '正在加载...',
callback: pullupRefresh
}
}
});
var main = null;
mui('.mui-scroll').on('tap','.mui-table-view-cell',function(e){
//这个事件是经常性的不执行呀
e.preventDefault();
console.log('tap');
if(!main) main = plus.webview.getWebviewById(plus.runtime.appid);
mui.fire(main,'changetitle',{name:'all',title:e.target.innerText});
});
/**
* 下拉刷新具体业务实现
*/
function pulldownRefresh() {
setTimeout(function() {
var table = document.body.querySelector('.mui-table-view');
var cells = document.body.querySelectorAll('.mui-table-view-cell');
for (var i = cells.length, len = i+8; i < len; i++) {
var li = document.createElement('li');
li.className = 'mui-table-view-cell';
li.innerHTML = '<a>TopItem ' + (i + 1) + '</a>';
//下拉刷新,新纪录插到最前面;
table.insertBefore(li, table.firstChild);
}
mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); //refresh completed
}, 500);
}
/**
* 上拉加载具体业务实现
*/
var count = 0;
function pullupRefresh() {
setTimeout(function() {
//参数为true代表没有更多数据了。
mui('#pullrefresh').pullRefresh().endPullupToRefresh((++count > 12));
if(count>2){
// mui('#pullrefresh').pullRefresh().disablePullupToRefresh();
}
var table = document.body.querySelector('.mui-table-view');
var cells = document.body.querySelectorAll('.mui-table-view-cell');
for (var i = cells.length, len = i + 8; i < len; i++) {
var li = document.createElement('li');
li.className = 'mui-table-view-cell';
li.innerHTML = '<a class="mui-navigate-right">Item ' + (i + 1) + '</a>';
table.appendChild(li);
}
}, 500);
}
学习 (作者)
没有解决,也没有官方人员出来确认一下。真是郁闷。已经放弃使用这个下拉刷新了。
2016-08-14 18:20