directives: {
clickOutside: {/* 指令生命周期 */
bind(el, binding, vnode) {
/* 把事件绑定在document上 看节点是否在当前元素内部 */
let handler = (e) => {
/* 判断是否在div内部 */
if (el.contains(e.target)) {
if (!vnode.context.isVisible)
vnode.context.focus();
} else {
if (vnode.context.isVisible)
vnode.context.blur();
}
}
el.handler = handler;
document.addEventListener('click', handler);
},
unbind(el) {
el.removeEventListener('click', el.handler);
}
}
}