简介
如上图,我想当点击xxx或yyy时将弹出层关闭,点击dom上的其他元素弹出层也关闭
于是我监听了xxx和yyy元素的onClick事件和input元素的onBlur事件
但是当我点击xxx或yyy时onBlur事件会先执行,导致xxx或yyy的onClick事件直接不执行
bug原因
onblur事件会比onclick事件先执行
解决方式
- 把onblur事件上的代码改成异步的形式,比如说加个setTimeout
- 不监听onClick事件而是监听onMouseDown事件这样你的事件将会下鼠标按下的那一刻就会执行