javascript - Vue 2.0 中监听多个 keyup 事件

标签 javascript vue.js vuejs2

我正在开发一个消息应用程序,我需要列出消息框(文本区域)的多个事件监听器。当用户按下回车键(@keyup.enter)时,消息将自动发送。但是,如果用户想要组织消息,我们希望允许用户添加换行符。因此,我们添加 @keyup.shift.enter (SHIFT + ENTER) 监听器来执行此操作。问题是当用户按 SHIFT + ENTER 时,它会同时调用 @keyup.enter@keyup.shift.enter。有没有办法阻止 @keyup.enter 事件?

<textarea
   v-model="message"
   @keyup="typing"
   @keyup.shift.enter="newLine"
   @keyup.enter="sendMessage"
 ></textarea>

最佳答案

一种方法可以不使用 @keyup.shift.enter 并在 @keyup.enter 的通风处理程序中检查是否 shift 也被按下,如果是,则调用 newLine 否则 sendMessage,如下所示:

methods: {
  typing () {
     console.log("typing")
  },
  newLine () {
    console.log("newLine")
  },
  sendMessage (event) {
    if(event.shiftKey){       
         console.log("newLine")
     } else {
         console.log("sendMessage")
     }
  }    
}

参见工作 fiddle here .

关于javascript - Vue 2.0 中监听多个 keyup 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42059580/

相关文章:

javascript - "TypeError: Failed to fetch dynamically imported module"上 Vue/Vite vanilla 设置

vue.js - 如何在 vue3 设置中强制更新?

javascript - Vue 全日历,打开 .事件点击时的模态

javascript - 将任意数量的具有不同宽度的元素对齐到带有环绕的网格

javascript - 为什么 v-model 不起作用?

javascript - for循环中调用FB api

javascript - JSON.parse (' ' ) - nodeJs 或 JS 或 V8 中的源代码在哪里?

javascript - 从深度重建片段位置

javascript - 从与当前组件不在同一级别的其他组件访问 $refs

javascript - 上传前预览图像