Vue.js中的ClickOutside指令用于检测点击的位置,如果点击的位置不是指定元素或其子元素,则会触发指令绑定的函数。
// 定义指令 Vue.directive('click-outside', { bind: function (el, binding, vnode) { el.clickOutsideEvent = function (event) { if (!(el == event.target || el.contains(event.target))) { vnode.context[binding.expression](event); } }; document.body.addEventListener('click', el.clickOutsideEvent) }, unbind: function (el) { document.body.removeEventListener('click', el.clickOutsideEvent) }, });
使用方法如下:
在Vue实例中定义一个函数,用于处理点击事件:
methods: { handleClickOutside (e) { // 处理点击事件 } }
在Vue实例中使用指令:
- 点击div外的元素,handleClickOutside函数即可被触发。