美文网首页
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