vue中使用contains判断点击事件,点击超出自身区域隐藏自己

注意:ref方式获取的和js原生方式获取的dom类型不同,用原生的js获取dom方式代替ref方式,这样才能判断是否属于自身区域的。

mounted() {
    // 监听,除了点击自己,点击其他地方将自身隐藏
   document.addEventListener("click", e => {
      const contentWrap = document.getElementById("contentWrap");
       if (contentWrap) {
          if (!contentWrap.contains(e.target)) {
            this.isFlag = false;
          }
       }
   });
}

关于Node.contains()

Node.contains()返回的是一个布尔值,来表示传入的节点是否为该节点的后代节点。

参考:MDN

可参考这个博客文章:https://blog.csdn.net/ddx2019/article/details/107249615/

posted @ 2023-01-29 10:13  李帆同学  阅读(853)  评论(0编辑  收藏  举报
TOP