当我专注于输入(b-form-input字段)时,我试图以实际方式打开Vue-Bootstrap下拉列表(b-dropdown)。我在b-form-input上调用了一个@focus方法来打开下拉列表。
这是我的引导代码:
<b-form-input v-model="search" @focus.native="openDropdown"></b-form-input>
<b-dropdown id="ddown1" text="Dropdown Button" class="m-md-2" ref="dropdownRef">
<b-dropdown-item>First Action</b-dropdown-item>
<b-dropdown-item>Second Action</b-dropdown-item>
</b-dropdown>
这是我的Vuejs代码:
methods:{
openDropdown(){
const elem = this.$refs.dropdownRef;
elem.click();
}
}
我尝试过很多方法,例如设置elem.visible = true。但它很快打开然后关闭。
我已关注How to open Bootstrap dropdown programmatically。但它并不适用于vue-bootstrap。
答案 0 :(得分:0)
您可以使用jQuery
切换下拉列表
methods:{
openDropdown() {
$('#ddown1').dropdown('toggle');
}
}
new Vue({
el:'#app',
data () {
return {
search: ''
}
},
methods:{
openDropdown() {
console.log('open');
$('#ddown1').dropdown('toggle');
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.js"></script>
<link href="//unpkg.com/bootstrap-vue@latest/dist/bootstrap-vue.css" rel="stylesheet"/>
<link href="//unpkg.com/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
<script src="//unpkg.com/bootstrap-vue@latest/dist/bootstrap-vue.js"></script>
<div id="app">
<b-form-input v-model="search" @focus.native="openDropdown"></b-form-input>
<b-dropdown id="ddown1" text="Dropdown Button" class="m-md-2 active" ref="dropdownRef">
<b-dropdown-item>First Action</b-dropdown-item>
<b-dropdown-item>Second Action</b-dropdown-item>
</b-dropdown>
</div>
</div>
检查我的演示