凡静
凡静
  • 发布:2016-04-24 21:48
  • 更新:2016-04-25 18:32
  • 阅读:5841

mui.js:3201 Uncaught TypeError: Cannot read property 'classList' of undefined

分类:MUI

请问专家
返回页面后,点击页面中的 Picker组件, 点确定,报错:
mui.js:3201 Uncaught TypeError: Cannot read property 'classList' of undefined

注意:正向进入该页面时,不报任何错,正常使用; 点击 内容进入另一个页面,点返回 报错;

返回时,页面已经执行初始化相关代码了:

mui.init({  
                //初始化上拉刷新  
                pullRefresh : {  
                    container:'#uprefresharea',//待刷新区域标识,  
                    up : {  
                      contentrefresh:"正在加载...",//可选,  
                      contentnomore:'没有更多数据了',//可选,  
                      callback:pullup_refresh //必选,刷新函数,  
                    }  
             }  
            });//init

发现报错时,发现 mui('#uprefresharea').pullRefresh().options.up 中没有回调函数,初始的选项也不是上面的初始options;

2016-04-24 21:48 负责人:无 分享
已邀请:
凡静

凡静 (作者)

问题经果汁的指导解决了,
原因
返回时,pullReresh初始化没成功,因为dom没加载完就执行了初始化;
方案

  1. pullRefresh初始化时,增加auto:true;
    mui.init({  
                //初始化上拉刷新  
                pullRefresh : {  
                    container:'#uprefresharea',//待刷新区域标识,querySelector能定位的css选择器均可,比如:id、.class等  
                    up : {  
                      contentdown: '上拉显示更多',  
            contentrefresh:"正在加载...",//可选,正在加载状态时,上拉加载控件上显示的标题内容  
                      contentnomore:'没有更多数据了',//可选,请求完毕若没有更多数据时显示  
                      callback:pullup_refresh, //必选,刷新函数,根据具体业务来编写,  
                      auto:true //页面加载完就加载一次  
                    }  
             }  
            });//init
  2. 增加延时
    
    mui.later(function(){  
                    var pos_y = resume_pos.offsetTop - resume_pos.abs_top;  
                    mui('#uprefresharea').pullRefresh().scrollTo(0,pos_y,100);  
                    console.log('定位到进入详情的页面');  
                },500);  

原理  
mui('#uprefresharea').pullRefresh() 一定会调用pullRefresh的初始化, 所以,在执行它前必需要求DOMContentLoaded, 即在ui.ready()内执行;

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