记ios input失去焦点绑定blur事件会导致click事件失效

486 阅读1分钟

因为最近在做即时通讯项目,遇到了当input聚焦输入时再点击表情唤醒表情键盘的时候会导致我点击表情的事件失效:

后面究其原因发现把input框的blur事件去掉又可以了,那就是blur在这里和表情的click事件冲突了

const msgInpBlur = (e: Event) => {
  msgInpFocusStatus.value = false
}

blur.gif

查了网上也没有找到类似的场景,最后自己瞎折腾加了个setTimeOut也同样解决了问题,估计是事件循环在搞怪吧,这里浅记一下,后面有空再研究。

有大佬知道原因的也欢迎评论区指点一下😀

const msgInpBlur = (e: Event) => {
  setTimeout(() => {
    msgInpFocusStatus.value = false
  }, 0)
}

click.gif