vuejs如何实现:点击其它地方,收起弹出菜单?

发布于 2022-09-03 00:37:01 字数 129 浏览 35 评论 0

vuejs做移动端时,点击菜单按键,弹出菜单,
如何实现 点击其它地方(非菜单元素内,可以空白,可以其它元素)收起这个菜单?

body绑定事件不可行。因为 为了避免点击穿透。我在每个点击事件上stop.prevent了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

莫多说 2022-09-10 00:37:01
html部分:
        <button class="navbar-toggler" id="toggler-btn" type="button" @click="toggleMenu">
              <span class="navbar-toggler-icon" id="toggler-icon"></span>
        </button>
                -----------------
 vue部分:
     created() {
        let body = document.querySelector('body')
        body.addEventListener('click',(e)=>{
            console.log(e.target.id === 'toggler-icon')         
        if(e.target.id === 'toggler-btn' || e.target.id === 'toggler-icon'){
                this.isMenuActive = true
        }else {
            this.isMenuActive = false
        }
        },false)
    },
    
    methods: {
    toggleMenu(e) {
            this.isMenuActive = !this.isMenuActive

            console.log('event', e)
        }
    }
    
枕梦 2022-09-10 00:37:01

给body绑定个事件

淡莣 2022-09-10 00:37:01

<body @click.self="showSth = false">
手机码的,应该可行吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文