input中blur和点击事件click冲突解决方法

原因:由于JavaScript为单线程,同一时间只能执行处理一个事件。“blur优先于click执行”。
场景:(自定义的模拟下拉框,选中时与click会与blur冲突)由于blur处理程序,会将对下拉框展示区隐藏,所以导致其后续click事件并不会执行。

  • 解决方案:让点击事件先执行(将click事件改为mousedown,其优先于blur事件)

mousedown事件:当鼠标指针移动到元素上方,并按下鼠标按键时,会发生mousedown事件。
mouseup事件:当在元素上放松鼠标按钮时,会发生mouseup事件。
click事件: 当鼠标点击元素,并松开鼠标按钮时触发,
触发顺序为 mousedown > mouseup > click

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。