【发布时间】:2020-08-27 01:42:24
【问题描述】:
我正在尝试使用此示例创建自定义指令:https://stackoverflow.com/a/42389266/5470563
main.ts 文件:
import Vue from 'vue';
import HeaderNav from './components/HeaderNav.vue'
Vue.directive('click-outside', {
bind: function (el, binding, vnode) {
el.clickOutsideEvent = function (event) {
// here I check that click was outside the el and his childrens
if (!(el == event.target || el.contains(event.target))) {
// and if it did, call method provided in attribute value
vnode.context[binding.expression](event);
}
};
document.body.addEventListener('click', el.clickOutsideEvent)
},
unbind: function (el) {
document.body.removeEventListener('click', el.clickOutsideEvent)
},
});
new Vue({
el: '#app',
components: {
HeaderNav
}
});
我得到一个编译错误:
“HTMLElement”类型上不存在属性“clickOutsideEvent”。
我该如何解决?或者有没有更好的解决方案来绑定外部元素点击事件?
【问题讨论】:
标签: typescript vue.js vuejs2