【发布时间】:2019-09-26 13:44:45
【问题描述】:
我有一个用户 vuetify 的 vue 应用程序。该应用程序在现有的 cms 中使用。 打开下拉选择时,在应用程序外部单击不会关闭下拉列表。如果点击在应用区域内,则下拉菜单关闭。
知道如何在应用程序外点击打开的下拉菜单时触发关闭吗?
new Vue({
el: '#cartbutton',
data() {
return {
items: [{text:'a'}, {text:'b'}]
}
}
})
.existing-cms {
padding: 40px 50px;
}
#app {
background-color: rgba(0,0,0,0.2);
padding: 10px;
height: 200px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<link href="https://unpkg.com/vuetify/dist/vuetify.min.css" rel="stylesheet"/>
<script src="https://unpkg.com/vuetify/dist/vuetify.min.js"></script>
<link href="https://fonts.googleapis.com/css?family=Material+Icons" rel=stylesheet>
<div class="existing-cms">
<p>Click on the select dropdown and leave it open.</p>
<p>
Click on this white region outside the app should somehow close
opened select in the app.
</p>
<div id="cartbutton">
<v-app>
<span>Clicking here insde the app closed the opened select</span>
<br><br>
<v-select label="Click me and leave it opened. Then click in the white region." :items="items"></v-select>
</v-app>
</div>
</div>
这是一个codepen链接https://codepen.io/darkopetreski/pen/OGMvop
编辑:
这似乎在https://github.com/vuetifyjs/vuetify/issues/3144 被报告为一个错误,建议在根元素处使用 data-app="true" ,但这种方法不好,因为它会弄乱一些东西(至少对我来说效果不佳)。
【问题讨论】:
标签: javascript vue.js vuetify.js