| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 1× 1× 1× 2× 1× | let onClickDocument = (e) => { let { target } = e callbacks.forEach(item => { if(item.el === target || item.el.contains(target)) { return } else { item.callback() } }) } document.addEventListener('click', onClickDocument) let callbacks = [] export default { bind: function (el, binding, vnode) { callbacks.push({el, callback: binding.value}) } } let removeListener = () => { document.removeEventListener('click', onClickDocument) } export {removeListener} |