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/