【发布时间】:2020-08-31 12:26:02
【问题描述】:
说明
在 VueJS 中,我试图通过单击一个单词以编程方式打开 Bootstrap 下拉菜单。 我希望菜单出现在鼠标正下方。
问题
问题是 - 当我在显示下拉菜单的按钮上设置 display: none; 时,菜单出现在左上角。我为 HTML 找到了 solutions,但我很难将它们重写为 VueJS。
最小的工作示例
我当前的 sn-p 看起来是这样的:(点击“点击”一词或删除display: none;)
new Vue({
el: '#vue-app',
methods: {
toggleTest: function(e) {
e.stopPropagation();
console.log(this.$refs.clickWord);
this.$refs.clickWord.click();
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script src="https://unpkg.com/vue@2.2.6/dist/vue.js"></script>
<div id="vue-app">
<div class="container">
<div class="row">
<div class="col-6">
A column.
</div>
<div class="col-6">
You should <span v-on:click="toggleTest" onMouseOver="this.style.background='#AFF'" onMouseOut="this.style.background='#FFF'">click</span> a word.
<div class="dropdown" id="word0">
<button id="ete" style="display:none" ref="clickWord" class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
</button>
<div class="dropdown-menu" style="top:100 !important; left:100; position: absolute;">
<span class="dropdown-item-text">Dropdown item text</span>
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
</div>
</div>
</div>
</div>
【问题讨论】:
标签: javascript html css vue.js bootstrap-4