wenju
wenju
  • 发布:2016-12-19 23:03
  • 更新:2016-12-20 11:08
  • 阅读:2324

今天更新了HBuilder新版本,为什么plusready的执行顺序变了??紧急

分类:HBuilder

我在app.js写了 document.addEventListener("plusready", function() {//TODO })
以前版本都是先执行app.js监听的plusready方法,再执行mui.plusReady的;
为什么今天更新后运行项目,就先执行mui.plusReady了呢??

2016-12-19 23:03 分享
已邀请:
wenju

wenju (作者)

自己解决了 我把app.js的document.addEventListener("plusready", function() {})改成mui.plusReady; 这样的话就会按照顺序执行; 也就是说不监听了 全部改成mui.plusReady;; 看源码确实说明 一个界面可以有多个mui.plusReady 只是触发一次而已

  • 瞳player

    恩,应该统一用plusReady的,另外plus提前注入好像是可选的

    2016-12-20 10:46

瞳player

瞳player

应该是plus对象提前注入导致的,
mui.plusReady的内部实现是这样的:

$.plusReady = function(callback) {  
        if (window.plus) {  
            setTimeout(function() { //解决callback与plusready事件的执行时机问题(典型案例:showWaiting,closeWaiting)  
                callback();  
            }, 0);  
        } else {  
            document.addEventListener("plusready", function() {  
                callback();  
            }, false);  
        }  
        return this;  
    };  

如果提前注入了plus,那么就提前触发了回调

  • wenju (作者)

    谢谢指点 可是我并没有替换mui.min.js 只是升级HBuilder 然后和往常一样跑项目 我改改自己的代码 O(∩_∩)O谢谢啦

    2016-12-20 10:29

  • 瞳player

    mui.min.js里的这部分也并没有更改,改的是h5+,对plus提前注入的支持是也是新版的特性

    2016-12-20 10:33

Trust

Trust

plus会提前注入,但是plusready事件的触发时机没有变。

  • 355568052@qq.com

    你好,更新了hbuilder后,遇到了一些bug,请官方能收集下。

    http://ask.dcloud.net.cn/question/26605

    2016-12-20 17:04

要回复问题请先登录注册