--- title: 下拉联想结果的全局监听click事件技术实现 description: 写Vue组件时实现下拉联想结果点击外部自动关闭,同时用了全局click事件监听来代替常用的onBlurSuggest逻辑 date: 2025-02-14T01:31:00+08:00 slug: 下拉联想 categories: - 实习小记 - 奇技淫巧 tags: [ "Vue", "前端" ] lastmod: 2025-02-14T01:40:00+08:00 --- 给公司写Vue组件时,需要实现一个下拉联想结果,这个下拉联想结果是根据用户输入内容实时调用API获取的,当用户输入内容时,下拉联想结果会自动弹出。自然地,如果用户点击了其他地方,下拉联想结果应该自动关闭,以保证用户体验。 其实一开始我用的是常用的`onBlurSuggest`实现,但是发现有时候点击外部没办法正确隐藏联想结果,分析了一下发现`blur`事件可能在`focus`事件之后触发,所以无法实现点击外部自动关闭。 所以我换了种方案,对于输入框和联想结果,我分别加了`ref`来标识两个组件,方便后面检查点击事件时进行定位。输入框: ```html ``` 联想结果: ```html
{{ col.label }} |
---|
|