【发布时间】:2019-10-27 01:28:06
【问题描述】:
我正在一个 Vuejs 项目上创建一个菜单组件。这个菜单有 2 个下拉菜单,我已经创建了一些方法并使用了 Vue 指令,所以当我单击其中 1 个时,其他隐藏,反之亦然,我还想知道如何通过单击外部来隐藏它们。
我尝试了 2 个 Vue 库,但对我不起作用。另外,如果可能的话,我想手动而不是外部执行此操作。
HTML:
<!-- menu -->
<div>
<ul>
<li><span>Home</span></li>
<li v-on:click="toggle1(), dropAreas =! dropAreas">
<span>Areas</span>
</li>
<li v-on:click="toggle2(), dropAdmin =! dropAdmin">
<span>Administration</span>
</li>
</ul>
</div>
<!-- /menu -->
<!-- dropdowns-->
<div v-if="dropAreas">
<ul>
<li>
<span>Kitchen</span>
</li>
<li>
<span>Baths</span>
</li>
</ul>
</div>
<div v-if="dropAdmin">
<ul>
<li>
<span>Profile</span>
</li>
<li>
<span>Services</span>
</li>
</ul>
</div>
<!-- /dropdowns-->
JS
data () {
return {
dropAreas: false,
dropAdmin: false
}
},
methods: {
toggle1 () {
if (this.dropAdmin === true) {
this.dropAdmin = false
}
},
toggle2 () {
if (this.dropAreas === true) {
this.dropAreas = false
}
}
}
*此代码在另一个组件“Home”中被调用,如下所示:
<template>
<div>
<menu></menu>
<!-- [...] -->
</div>
</template>
关于如何手动完成的任何想法?可能吗?谢谢。
【问题讨论】:
-
如果我做对了,这应该可以帮助你:stackoverflow.com/questions/36170425/…
-
它应该但它对我不起作用......我认为问题是我在另一个组件上调用菜单并且由于组件在 Vue 中是隔离的,所以整体示例不为我工作...
标签: javascript vue.js