美文网首页
click触发了input的blur事件

click触发了input的blur事件

作者: 轻丨尘 | 来源:发表于2024-05-10 14:55 被阅读0次

情景

使用input结合下拉选项自定义一个预选数据列表

  • input取消焦点(blur)时需要关闭下拉选项框;
  • 选择下拉选项时需要关闭下拉选项框;


    0.jpg

故障

点击下拉选项时,多数情况下,会先触发input的blur事件,导致出现某些缺陷

解决方式

点击事件改为mousedown 事件,并在事件中使用event.preventDefault() 就可以了

原因:
所有元素都有click事件,会产生冒泡。一个元素失去焦点,blur事件优先于click事件。只要input绑定了blur,离开时浏览器会默认执行。
改为mousedown 之后,当你点击元素的时候,mousedown 优先于blur执行,所以只要在 mousedown 事件中阻止默认事件发生就可以了!

相关文章

网友评论

      本文标题:click触发了input的blur事件

      本文链接:https://www.haomeiwen.com/subject/knkefjtx.html