首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在VueJs中按函数处理按键

在VueJs中按函数处理按键
EN

Stack Overflow用户
提问于 2018-05-17 23:48:55
回答 3查看 31.6K关注 0票数 15

在我的组件中,我使用了VueStrap的模式,如下所示:

代码语言:javascript
复制
<template>
    <modal-window v-model="show" v-on:keyup="keyHandler($event)" @ok="submit()" @cancel="cancel()" @closed="close()" ... >
       ...
    </modal-window>
 ...
</template>
<script> 
    ...
    methods: {
       keyHandler (event) {
           console.log(event);
       }
    },...
</script>

我想要处理按键时,模式是打开,并确保提交模式时,进入按下或关闭模式时,按esc键。

我添加了自定义函数keyHandler,不幸的是它从未触发过。你能告诉我如何修复该函数中处理按键的代码吗?或者什么时候是更好的方式,如何关闭和提交vue表带模式,我将感谢您的建议。谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-18 00:06:06

您可以将事件处理程序附加到window,这样您就可以接收所有关键事件,并根据您的模式的状态执行相应的操作:

代码语言:javascript
复制
Vue.component('modal', {
  template: '<div>test modal</div>',
});

new Vue({
  el: "#app",
  created() {
    window.addEventListener('keydown', (e) => {
      if (e.key == 'Escape') {
        this.showModal = !this.showModal;
      }
    });
  },
  data: {
    showModal: true
  }
})
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.min.js"></script>
<div id="app">
  <modal v-show="showModal"></modal>
</div>

票数 26
EN

Stack Overflow用户

发布于 2020-09-01 04:46:57

最简单的方法

代码语言:javascript
复制
<input v-on:keyup.13="whatkey()" type="text"> <br>

查找是否按下了enter键,然后激发一个名为whatkey的方法。

票数 4
EN

Stack Overflow用户

发布于 2020-06-03 09:21:20

或者,您可能想要考虑在Vue (docsgithub)中使用v-hotkey指令进行键输入。如果您必须考虑几个不同的键输入,这将使您的代码相对干净和简单。

1.安装:

代码语言:javascript
复制
npm i --save v-hotkey

  1. 会让Vue 'use‘它:

从“v- VueHotkey”导入热键;Vue.use(VueHotkey);

3.您可以将其应用于您的Vue组件,如下所示:

代码语言:javascript
复制
<template>
    <modal-window ... v-hotkey="keymap">
       ...
    </modal-window>
</template>
<script>
  ...
  data() {
    return {
      showModal: false
    };
  },
  computed: {
    keymap() {
      return {
        "esc": this.toggleModal
      };
    }
  },
  methods: {
    toggleModal() {
      this.showModal = !this.showModal;
    }
  }
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50395674

复制
相关文章

相似问题

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