v***@163.com
v***@163.com
  • 发布:2018-03-14 15:57
  • 更新:2018-08-16 21:59
  • 阅读:3114

【报Bug】一个页面new了2个mui.PopPicker,导致回退键的mui-action-back 失效

分类:MUI
mui

详细问题描述
[内容]
在一个页面mui.plusReady里 new了2个mui.PopPicker({layer: 2}),内容不同,
点击不同按钮,弹出不同的poppicker,在点击一个时,先hide另外一个,
来回反复点击,会导致页面左上角回退键的mui-action-back 失效,无法返回,
报错:
Uncaught TypeError: $.back is not a function at js/mui.js:2783

只能通过plus.webview.close(ws);方式退出。

2018-03-14 15:57 负责人:无 分享
已邀请:
v***@163.com

v***@163.com (作者)

另外,就是安卓机的回退键也会无效,报:TypeError: $.back is not a function

v***@163.com

v***@163.com (作者)

at __back (file:///storage/emulated/0/Android/data/io.dcloud.HBuilder/apps/HBuilder/www/js/mui.js:2898:5)

v***@163.com

v***@163.com (作者)

看了一下mui.poppicker.js的代码,hide()方法有问题


hide: function() {
...
//处理物理返回键
$.back=self.__back;
...
}


这里要加个判断,self.__back是否已经设置的判断,
如果用户不调用show,直接调用hide,back键就挂了。

  • v***@163.com (作者)

    self.__back为undefined的情况设置给$.back,就会把原来的$.back给冲掉

    2018-03-30 10:32

5***@qq.com

5***@qq.com

我也遇到相同的问题,页面里面有poppicker的时候,点击poppicker后,返回就失效了,你那边有什么好方法吗?

  • v***@163.com (作者)

    mui.poppicker.js这个文件里有bug,看我上面的评论。

    2018-05-24 14:26

8***@qq.com

8***@qq.com - 鸡鸡小而舰艇

加个什么判断呢?

  • 4***@qq.com

    我遇到的是dtpicker,在打开新的picker前关闭已打开的picker就好了

    2018-08-17 11:33

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