在vuejs

时间:2018-06-12 13:19:30

标签: vue.js vuejs2

我目前正在开发一个使用VueJS的项目。这个项目有很多mixin和组件,HTML @click中定义了许多地方。

是否可以获取附加了这些事件列表的DOM节点列表?或者扩展主事件监听器功能,以便我可以为它添加一些额外的逻辑?我已经搜索了几个小时的答案,但仍然找不到任何有用的东西。

谢谢!

1 个答案:

答案 0 :(得分:1)

我只想告诉您,在经过大量调试后,我找到了一种方法来确定哪些元素附加了@click事件。对于那些仍然想知道的人:

function loopThroughVueNodeChildren(children) {
    children.forEach(vnode => {
        // Is an @click attached to this element?
        if (vnode.data && typeof vnode.data.on !== 'undefined' && typeof vnode.data.on.click === 'function') {
            console.log('This element has an @click event! I can do whatever i need to do in here :)');
        }

        if (vnode.children) {
            this.addEventListenerOnVueNodes(vnode.children);
        }
    })
},


loopThroughVueNodeChildren(this._vnode.children);