vue3项目中,点击某个div以外的区域,将这个div隐藏

这篇具有很好参考价值的文章主要介绍了vue3项目中,点击某个div以外的区域,将这个div隐藏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

<template>
  <div>
    <div @click="showDiv">点击此处显示/隐藏</div>
    <div v-if="isDivVisible" ref="divToHide">要隐藏的内容</div>
  </div>
</template>

<script lang="ts">
import { defineComponent, onMounted } from 'vue';

export default defineComponent({
  data() {
    return {
      isDivVisible: false
    };
  },
  methods: {
    showDiv() {
      this.isDivVisible = !this.isDivVisible;
    },
    handleClickOutside(event: MouseEvent) {
      const divToHide = this.$refs.divToHide as HTMLElement;

      if (divToHide && !divToHide.contains(event.target as Node)) {
        this.isDivVisible = false;
      }
    }
  },
  mounted() {
    onMounted(() => {
      document.addEventListener('click', this.handleClickOutside);
    });
  },
  beforeUnmount() {
    document.removeEventListener('click', this.handleClickOutside);
  }
});
</script>

使用 @click 来监听 div 的点击事件,并通过 v-if 来控制 div 的显示与隐藏。在组件的 mounted 钩子函数中,通过 document.addEventListener 添加了一个点击事件监听器,用于监听整个页面的点击事件。当点击事件发生时,会调用 handleClickOutside 方法来检查是否需要隐藏 div。最后,在组件的 beforeUnmount 钩子函数中,通过 document.removeEventListener 来移除点击事件监听器,以防止内存泄漏。文章来源地址https://www.toymoban.com/news/detail-640696.html

到了这里,关于vue3项目中,点击某个div以外的区域,将这个div隐藏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包