Vue.js 输入建议在输入聚焦和@click 时可见

标签 vue.js vuejs2

我的应用程序有一个小问题。我仅在使用 v-show 和 @focus 像这样聚焦输入时才显示搜索建议

//input
@focus="shouldShowSuggestions = true"
@blur="shouldShowSuggestions = false"

//suggestions div
v-show="shouldShowSuggestions"

当我专注于输入时,建议会正确显示,但当我尝试点击建议时,链接不会被点击,并且由于我有 @blur,建议会消失。

我知道这个问题,但我不确定如何处理它。有什么想法吗?

我用这个问题创建了一支笔,以防不清楚。 要重现,请专注于输入并尝试点击建议。

代码笔:https://codepen.io/anon/pen/vrdavv

最佳答案

单击事件由鼠标按下和向上 Action 组成。输入将在鼠标按下时变得模糊,因此它将在点击事件发生之前隐藏。

尝试使用 mousedown 事件而不是 click 来更早地捕获它(但这可能不适用于触摸设备)。

或者,更好的是,您可以防止 mousedown 事件模糊焦点元素:

<a @mousedown.prevent @click="clickedElement">

关于Vue.js 输入建议在输入聚焦和@click 时可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50943833/

相关文章:

vue.js - 将数据转换为 Vue.js 2 中根组件的 Prop

javascript - 按值分组到数组、includes()、自定义结构

html - 我想减少导航栏中一个 flex 元素的宽度

Vue.js,如何从父级添加/修改插槽内的 css 类

vue.js - 在 Vue.js 2.6 中使用 Javascript 访问 <slots> 的内容

javascript - 使用 firebase 和 vuejs 过滤数组

javascript - 如何限制 v-select 元素的输入长度?

javascript - Vue 在更改特定按钮后更新所有按钮文本

php - 将数据库日期格式化为 AM/PM 时间 (vue)

javascript - Vue js 加载器覆盖全局 css