click和blur事件冲突解决方案

场景:例如做一个模仿百度搜索的搜索框,输入文字下面会有匹配项,当点击下拉项中的值时,就将值添加到搜索框中同时隐藏下拉框,点击其他地方就直接隐藏下拉框,这时所需要的事件分别为 下拉框事件onclick,输入框事件onblur,但是实际会出现想选中下拉框却先触发了onblur事件导致onclick无法执行。原因是因为JS是单线程,同一时间只能处理一个事件,且blur执行顺序优先click.

解决方案:将onclick改为onmousedown即可。

posted @ 2017-05-26 18:13  夏空  阅读(1280)  评论(0编辑  收藏  举报