你绕我绕
你绕我绕
  • 发布:2017-12-30 14:43
  • 更新:2017-12-30 14:43
  • 阅读:1083

上拉 正在加载不消失

分类:MUI

(已解决)
我使用的是多上拉,参考的是demo(pullrefresh_with_tab.html)的循环初始多个上拉div. 使用的也是demo的上拉js文件.... 使用过程中,在切换上拉时,会出现正在加载不消失.
状况一: 一进去上拉页面就显示正在加载中.有事件响应不处理逻辑
状况二:第一次上拉显示数据成功, 第二次上拉时,显示正在加载中,之后情况同上.
补充一下,我每次切换页面前在上拉时都有重置refresh(true).并且每一次上拉完都有endPullUpToRefresh();,每次加载完 所有 数据,都有endPullUpToRefresh(true);

关于以上问题,今天腾出时间,表示已经解决.(之前查过,发现有人也有这问题竟然数年没有回复,官方程序员未免太懒了吧,身为同程序人员,我能鄙视一下吗)
补充解决办法,
在原官方demo(pullrefresh_with_tab.html) => mui.pullToRefresh.js文件下, 注意 ,非mui.js库的代码.有如下代码:
_dragup: function(e) {
var self = this;
if (self.loading) {
return;
}
if (e && e.detail && $.gestures.session.drag) {
self.isDraggingUp = true;
} else {
if (!self.isDraggingUp) { //scroll event
return;
}
}
if (!self.isDragging) {
/注意/ if (self._canPullUp()) {
self.pullUpLoading(e);
}
}
关于为何会出现如上问题,经过测试发现,该上拉事件,第一行 var self = this; 有时这个this不准确,当切换不同tab页面时这个this返回指向并不准确,有时仍指向上一个上拉的页面mui.sroll.
因此,把var self = this改成 var self = e.currentTarget;

当改完成,在上面代码注意部分,会发生错误;所以我把该整个逻辑给注释掉了,其实我之前我就觉得self.pullUpLoading(e);有点多余.

最近经测试.没有问题,我的问题至此解决,其它场合并不太清楚.
贴出改完后的代码
_dragup: function(e) {
var self = e.currentTarget;
if (self.loading) {
return;
}
if (e && e.detail && $.gestures.session.drag) {
self.isDraggingUp = true;
} else {
if (!self.isDraggingUp) { //scroll event
return;
}
}
// if (!self.isDragging) {
// if (self._canPullUp()) {
// self.pullUpLoading(e);
// }
// }
}

2017-12-30 14:43 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复