获得过 0 次赞
回答过的问题获得 0 次赞
分享过的文章/案例获得 0 次赞
评论与回复获得 0 次赞
经测试,真机下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用变量控制。虽然解决了,但是代码可读性变差了
input组件blur事件不触发- 当前 Bug 的表现 点击input输入框后,再迅速点击页面其他地方,input不会触发blur事件,调起的键盘不会收起。 实际项目中的情况是:点击了手机号输入框后,又迅速点击了获取手机号的button组件,这时授权界面和键盘都调起来了,但是键盘层级较高,会挡住授权界面的“接受”和“拒绝”按钮,且整个界面无法再进行后续操作(可操作的按钮都被遮挡了)。 - 提供一个最简复现 Demo 见代码片段,从console中看input blur事件和button click事件的触发情况
01-18