vue点击div以外隐藏指定div
时间: 2023-08-21 09:01:54 浏览: 557
可以使用Vue的事件修饰符和事件委托来实现点击页面其他区域隐藏指定div的功能。具体实现方法如下:
1. 在指定div的外层包裹一个div,并给该div绑定一个点击事件。
2. 在该div的点击事件中,判断点击的元素是否是指定div或指定div内部的元素,如果是,则不做处理;如果不是,则隐藏指定div。
3. 在指定div上绑定一个点击事件,阻止事件冒泡,以避免点击指定div时触发外层div的点击事件。
示例代码如下:
```html
<template>
<div class="wrapper" @click="hideDiv">
<div class="target" @click.stop>
<!-- 指定div的内容 -->
</div>
</div>
</template>
<script>
export default {
methods: {
hideDiv(e) {
const target = e.target
const isTarget = target.classList.contains('target') || target.closest('.target')
if (!isTarget) {
// 点击指定div外部,隐藏指定div
// 可以使用v-show或v-if指令来控制指定div的显示和隐藏
this.isShow = false
}
}
}
}
</script>
<style scoped>
.wrapper {
/* 外层div的样式 */
}
.target {
/* 指定div的样式 */
}
</style>
```
在上述代码中,我们在外层div中绑定了一个点击事件,并在其中判断点击的元素是否是指定div或指定div内部的元素,如果不是,则隐藏指定div。同时,在指定div上也绑定了一个点击事件,并通过事件修饰符.stop来阻止事件冒泡,以避免点击指定div时触发外层div的点击事件。
阅读全文