mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
[bugfix] click outside mixin event binding (#3584)
This commit is contained in:
parent
f86ab3a4d5
commit
caa83ac4a8
@ -1,3 +1,6 @@
|
|||||||
|
/**
|
||||||
|
* Bind event when mounted or activated
|
||||||
|
*/
|
||||||
import { on, off } from '../utils/dom/event';
|
import { on, off } from '../utils/dom/event';
|
||||||
|
|
||||||
export function BindEventMixin(handler) {
|
export function BindEventMixin(handler) {
|
||||||
|
@ -1,17 +1,20 @@
|
|||||||
|
/**
|
||||||
|
* Listen to click outside event
|
||||||
|
*/
|
||||||
import { on, off } from '../utils/dom/event';
|
import { on, off } from '../utils/dom/event';
|
||||||
|
|
||||||
export const ClickOutsideMixin = config => ({
|
export const ClickOutsideMixin = config => ({
|
||||||
mounted() {
|
mounted() {
|
||||||
config.handler = event => {
|
this.clickOutsideHandler = event => {
|
||||||
if (!this.$el.contains(event.target)) {
|
if (!this.$el.contains(event.target)) {
|
||||||
this[config.method]();
|
this[config.method]();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
on(document, config.event, config.handler);
|
on(document, config.event, this.clickOutsideHandler);
|
||||||
},
|
},
|
||||||
|
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
off(document, config.event, config.handler);
|
off(document, config.event, this.clickOutsideHandler);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user