vue点击div以外隐藏指定div
时间: 2023-08-21 17:01:53 浏览: 255
可以使用Vue的自定义指令来实现这个功能。首先,需要在Vue实例中注册一个自定义指令,例如:
```
Vue.directive('click-outside', {
bind: function(el, binding, vnode) {
el.clickOutsideEvent = function(event) {
// 判断点击的元素是否在指定的元素内部
if (!(el === event.target || el.contains(event.target))) {
vnode.context[binding.expression]();
}
};
document.body.addEventListener('click', el.clickOutsideEvent);
},
unbind: function(el) {
document.body.removeEventListener('click', el.clickOutsideEvent);
}
});
```
然后,在需要隐藏的指定div上添加v-click-outside指令,并在Vue实例中定义一个方法来隐藏该div,例如:
```
<div v-show="showDiv" v-click-outside="hideDiv">指定的div</div>
...
data: {
showDiv: false
},
methods: {
hideDiv: function() {
this.showDiv = false;
}
}
```
这样,当点击指定div以外的区域时,会触发指令中绑定的事件,调用hideDiv方法,隐藏指定div。
阅读全文