学习
学习
  • 发布:2016-03-17 11:45
  • 更新:2016-05-09 16:43
  • 阅读:1871

下拉刷新 里面 table-view-cell的 tap 事件经常性无效

分类:MUI

完全按着官方示例,

只是响应了 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-03-17 11:45 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com

哥们解决了吗?我的也出现类似问题,点击事件无效

  • 学习 (作者)

    没有解决,也没有官方人员出来确认一下。真是郁闷。已经放弃使用这个下拉刷新了。

    2016-08-14 18:20

syd

syd

你把绑定事件那个方法放到mui.plusReady里试试

  • 学习 (作者)

    尝试过。还是没有效果。

    2016-08-14 18:21

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