自定义属性

 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);
         }
     }
 }
Logo

前往低代码交流专区

更多推荐