1. onBlur事件
处理清空事件时,在右侧添加一个绝对定位元素,用于触发清空事件。
另外需要失去焦点时隐藏清空按钮。
onBlur={/***清空****/}
然后发现不管清空按钮的zIndex多高,都只能触发blur事件,清空按钮的点击事件永远不会触发。取消调Blur事件就可以触发。
后来想到了小程序原生的表单具有穿透作用。React中使用input也是原生表单,所以同样。所以不管zIndex如何设置,input的事件优先级最高。
先触发blur事件,此时清除按钮showClear ? <img src={../XXX/clear} /> : null单击事件找不到对应的元素,则不会触发。
想要触发有两种方式:
1)隐藏按钮时使用visibility: !showClear ? 'hidden': 'visible'
2) 隐藏按钮时使用display: !showClear ? 'none' : 'block'
-
Blur事件使用异步触发:
onBlur = { () => setTimeout(() => { /*清空/ }) }