【发布时间】:2021-01-19 21:21:07
【问题描述】:
我的 SPA 有一个带有侧边栏导航菜单的管理仪表板,当视口大于 991 像素时,默认情况下该菜单可见。当视口小于 991 像素时,导航栏会消失,您会看到一个汉堡图标,您可以单击该图标来切换(显示/隐藏)侧边栏菜单。现在,只有当您再次单击小汉堡菜单图标时,该菜单才会隐藏。如果用户单击菜单之外的任何位置,我想要的是关闭/隐藏菜单。我正在为我的 UI 使用 Bootstrap-Vue。
所以我有一个<b-navbar toggleable="md" type="dark" variant="info"></b-navbar>。
我想做的是这样的事情,但我知道我正在混合使用 Javascript 和 Vue js,但不确定如何设置。
data() {
return {
sidebarMenu: true
}
}
<section class="app-sidebar" v-if="sidebarMenu">
<div class="main-panel" @click="hideSidebarNavMenu">
methods: {
hideSidebarNavMenu() {
this.sidebarMenu = false;
},
const navbarTogglerButton = document.querySelector(".navbar-toggler");
navbarTogglerButton.addEventListener('click', function(event) {
this.sidebarMenu = true;
})
}
这个主面板 div 将包含每个页面的所有数据,所以无论他们在哪里点击这个 hideSidebarNavMenu 函数都应该被触发。
仅当视口小于 991 像素时,我才需要此代码。 同样,我的方法中出现了一些语法错误,我相信是因为我正在尝试在我的方法属性中编写 Javascript。
这就是想法。 谢谢。
【问题讨论】:
标签: javascript vue.js