首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以向Vue 2的'on‘指令添加自定义事件?

是否可以向Vue 2的'on‘指令添加自定义事件?
EN

Stack Overflow用户
提问于 2021-04-18 22:25:32
回答 1查看 39关注 0票数 0

我尝试在Vue的全局'on‘指令中添加一个'clickaway’事件,以便在Vue模板中使用它,如下所示:

代码语言:javascript
复制
<div v-on:clickaway="someMethod">

</div>

所以JavaScript应该看起来像这样:

代码语言:javascript
复制
import Vue from 'vue';

Vue.directive('on', {
// Default 'On' functionality here

// My method that checks if 'clickaway' has been passed in as an argument
});

这有可能吗?

编辑:

为了有希望地阐明我要做的事情,我目前已经在一个指令中让它按照我想要的方式工作:

代码语言:javascript
复制
Vue.directive('clickaway', {
    bind(element, { expression }, { context }) {
        element.clickAwayEvent = event => {
            if (!(element === event.target || element.contains(event.target))) {
                context[expression](event);
            }
        };

         document.body.addEventListener('click', element.clickAwayEvent);
    },

    unbind(element) {
        document.body.removeEventListener('click', element.clickAwayEvent);
    },
});

和标记:

代码语言:javascript
复制
<div v-clickaway="closeDropdown"></div>

但我希望能够这样写,而不是在自定义指令中:

代码语言:javascript
复制
<div v-on:clickaway="closeDropdown"></div>
EN

回答 1

Stack Overflow用户

发布于 2021-04-19 05:28:09

正如MichalLev and回答的那样,我试图做的事情是不可能的,最好的替代方案是使用指令方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67149663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档