【发布时间】:2021-10-14 19:29:19
【问题描述】:
我想在输入中搜索并显示结果。在输入输入后显示结果的 div 时,会出现一些路线,我想单击它们并转到另一个页面。
此外,如果我在输入搜索之外单击,则关闭结果的 div。我在blur 上将visible 更改为false。
但是blur 在router-link 点击之前触发。所以当我点击路由器链接时无法进入新页面。
如何在click 之后强制blur 触发?还是不在结果的div上触发?
var app = new Vue({
el: '#app',
data() {
return {
visible: false
}
},
methods: {
show() {
this.visible = true
}
}
})
<link type="text/css" rel="stylesheet" href="https://unpkg.com/bootstrap@4.5.3/dist/css/bootstrap.min.css" />
<link type="text/css" rel="stylesheet" href="https://unpkg.com/bootstrap-vue@2.21.2/dist/bootstrap-vue.css" />
<script src="https://unpkg.com/vue@2.6.12/dist/vue.min.js"></script>
<script src="https://unpkg.com/bootstrap-vue@2.21.2/dist/bootstrap-vue.min.js"></script>
<div id="app">
<div>
<input @keyup="show()" @blur="visible = false"/>
<div v-if="visible">
<router-link
to="{name: 'sample', params: {sample: 'sample'}}"
>
Go to another page
</router-link>
</div>
</div>
</div>
【问题讨论】:
标签: javascript vue.js