vue點擊其他地方 這個div隱藏

Vue 中實現點擊其他地方隱藏 `div` 的思路一般如下所示:

1. 給需要隱藏的 `div` 綁定一個 `v-show` 或 `v-if` 指令,初始狀態爲顯示。
2. 給整個頁面或父級元素(比如 `body` 或者 `app` 組件,建議是根組件)綁定一個點擊事件。
3. 在點擊事件的回調函數中,判斷點擊的區域是否是需要隱藏的 `div` 或者 `div` 的子元素。如果是,則不進行操作,否則將 `div` 隱藏。
4. 將點擊事件綁定到整個頁面或父級元素上。

下面是一個使用 Vue 實現點擊其他地方隱藏 `div` 的示例代碼:

```vue
<template>
<div>
<button @click="isShow = !isShow">顯示/隱藏</button>
<div v-show="isShow" ref="box">需要隱藏的 div</div>
</div>
</template>

<script>
export default {
data() {
return {
isShow: false,
};
},
mounted() {
document.addEventListener('click', this.hideBox);
},
methods: {
hideBox(e) {
// 判斷是否點擊需隱藏的 div 及其內部元素
if (!this.$refs.box.contains(e.target)) {
this.isShow = false;
}
},
},
beforeDestroy() {
document.removeEventListener('click', this.hideBox);
},
};
</script>
```

其中,上面的代碼使用了 `mounted()` 和 `beforeDestroy()` 生命週期來添加和移除點擊事件監聽器,也可以在 `created()` 和 `destroyed()` 生命週期中添加和移除。需要注意的是,在添加和移除事件監聽器時要避免重複添加和移除,可以使用 `addEventListener()` 和 `removeEventListener()` 方法來實現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章