vue form表单点击窗口外面,窗口不关闭
时间: 2023-10-19 10:23:13 浏览: 88
关不掉的窗口
您可以通过监听点击事件来判断点击位置是否在模态框外面,如果在则关闭模态框。可以使用Vue的$refs来获取模态框的DOM元素,然后绑定一个监听点击事件的方法,在方法里判断点击位置是否在模态框外部,如果是则关闭模态框。以下是一个示例代码:
```
<template>
<div>
<button @click="showModal">打开模态框</button>
<div class="modal" ref="modal" v-show="isShow">
<div class="content">
<h2>这是一个模态框</h2>
<p>点击窗口外面关闭</p>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
isShow: false
}
},
methods: {
showModal() {
this.isShow = true
document.addEventListener('click', this.handleClickOutside)
},
hideModal() {
this.isShow = false
document.removeEventListener('click', this.handleClickOutside)
},
handleClickOutside(evt) {
if (!this.$refs.modal.contains(evt.target)) {
this.hideModal()
}
}
},
}
</script>
<style scoped>
.modal {
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
}
.content {
background-color: #fff;
padding: 20px;
}
</style>
```
阅读全文