UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

33 lines (29 loc) 1.07 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vClickoutside = { beforeMount: function beforeMount(el, binding) { function documentHandler(e) { // 这里判断点击的元素是否是本身,是本身,则返回 if (el.contains(e.target)) { return false; } // 判断指令中是否绑定了函数 // 如果绑定了函数 则调用那个函数,此处 binding.value 就是 handleClose 方法 if (typeof binding.value === 'function') { binding.value(e); } } // 给当前元素绑定个私有变量,方便在 unbind 中可以解除事件监听 el.__vueClickOutside__ = documentHandler; document.addEventListener('click', documentHandler, true); }, update: function update() {}, unmounted: function unmounted(el) { if (el.__vueClickOutside__) { // 解除事件监听 document.removeEventListener('click', el.__vueClickOutside__, true); delete el.__vueClickOutside__; } } }; exports.vClickoutside = vClickoutside;