js文件
import Vue from 'vue'
//自定义指令-点击div区域之外触发

// 提交验证
Vue.directive('clickOutside', {
    // 初始化指令
    bind(el, binding) {
        function clickHandler(e) {
            // 这里判断点击的元素是否是本身,是本身,则返回
            if (el.contains(e.target)) {
                return false;
            }
            // 判断指令中是否绑定了函数
            if (binding.expression) {
                // 如果绑定了函数 则调用那个函数,此处binding.value就是handleClose方法
                binding.value(e);
            }
        }
        // 给当前元素绑定个私有变量,方便在unbind中可以解除事件监听
        el.__vueClickOutside__ = clickHandler;
        document.addEventListener('click', clickHandler);
    },
    update() { },
    unbind(el) {
        // 解除事件监听
        document.removeEventListener('click', el.__vueClickOutside__);
        delete el.__vueClickOutside__;
    },
});
main.js
//自定义指令引入
import './directive/directive'
页面
 <div  v-click-outside="outsideClick">

页面来源:https://blog.csdn.net/weixin_43837268/article/details/88722598

相关文章:

  • 2022-01-11
  • 2021-09-23
  • 2022-12-23
  • 2021-07-25
  • 2021-06-01
  • 2021-09-21
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-03
  • 2022-12-23
  • 2021-04-19
  • 2022-12-23
  • 2022-12-23
  • 2021-07-05
  • 2021-08-11
相关资源
相似解决方案