UNPKG

press-ui

Version:

简单、易用的跨端组件库,兼容 Vue2 和 Vue3,同时支持 uni-app和普通 Vue 项目

32 lines (26 loc) 629 B
export const ClickOutsideMixin = config => ({ props: { closeOnClickOutside: { type: Boolean, default: true, }, }, data() { const clickOutsideHandler = (event) => { // @ts-ignore if (this.closeOnClickOutside && !this.$el.contains(event.target)) { // @ts-ignore this[config.method](); } }; return { clickOutsideHandler }; }, mounted() { // @ts-ignore document.addEventListener(config.event, this.clickOutsideHandler); }, beforeDestroy() { // @ts-ignore document.removeEventListener(config.event, this.clickOutsideHandler); }, });