- 当前 Bug 的表现
点击input输入框后,再迅速点击页面其他地方,input不会触发blur事件,调起的键盘不会收起。
实际项目中的情况是:点击了手机号输入框后,又迅速点击了获取手机号的button组件,这时授权界面和键盘都调起来了,但是键盘层级较高,会挡住授权界面的“接受”和“拒绝”按钮,且整个界面无法再进行后续操作(可操作的按钮都被遮挡了)。
- 提供一个最简复现 Demo
见代码片段,从console中看input blur事件和button click事件的触发情况
框架类型 | 问题类型 | API/组件名称 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|
小程序 | Bug | input | 客户端 | 7.0.1 | 2.5.2 |
7 个回答
我也遇见这个问题了
我也遇到了。
重现了
这个问题还在吗?
经测试,真机下input上绑定的事件执行顺序为bind:tap -> bindfocus,迅速点击其他绑定有bind:tap的节点时,会优先触发当前节点的tap事件,然后再触发input的blur事件,所以实际触发情况是:tap -> focus -> tap -> blur。这时如果想等input blur事件生效后再做其他操作是不行的。我的处理方式是,在触发其他节点的tap事件时,判断input的focus是否为true,若是,则使用setTimeout延迟300ms,等待blur事件触发,再进行其他操作。若是担心blur事件不触发,可以先将focus置为false,再进行延迟操作。input的focus用变量控制。虽然解决了,但是代码可读性变差了
对的,我也是,100%重现,界面没设计的好,点都点不掉
你好,是只有Android有这个问题吗?
不是,我是在iOS上复现的,iPhone 6P iOS12.0.1 微信7.0.1
还有下文没。。
好像。。。这个问题很久之前就说在修复。。。。。
扎铁了,老心