为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以只检测 onkeyup 和 onpaste 之间的一个事件?

是否可以只检测 onkeyup 和 onpaste 之间的一个事件?

慕标5832272 2021-10-29 16:36:59
有一个<input>元素。我添加了 Vue 指令的处理程序来监听 keyup 和 paste 事件,如@keyup and @paste. onPaste当我粘贴某些东西时,我只想要事件检测。但是两个人都被发现了。是否可以仅检测粘贴事件?以及如何?<div id="app">  <input type="text" @keyup="keyup" @paste="onPaste"></div>new Vue({  el:'#app',  methods: {    onPaste: function () {        console.log('paste');    },    keyup: function () {        console.log('keyup');    },  }});
查看完整描述

1 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

让我们先建立一些基础知识,以便我们可以继续解决您的问题:

建立 HTML 原生事件基础

onpaste 事件通常由用户通过以下两种方式之一触发:

  1. 用户按下的CTRL + V按钮(每个按下的按钮都会触发keydownkeyupHTML 事件

  2. 鼠标右键单击以打开浏览器上下文菜单并从中选择选项粘贴到输入(contextmenu触发 HTML 事件)

Vue.js

Vue.js 内置了事件监听器,您可以监听任何原生 HTML 事件。如果你只想监听onpasteHTML 事件,你只需要@paste像上面那样监听这个事件。

动机不明

试图修改浏览器原生的行为即paste事件不会组成的keydownkeyup/contextmenu事件只要是根本不可能的,当你试图用浏览器本地HTML API工作。如果您选择构建自己的自定义粘贴逻辑并阻止由您决定的默认值,但说实话,我真的不明白您做这样的事情的动机是什么,因为浏览器的原生 HTML 事件完全按照他们的需要做到。

我认为你需要问自己的主要问题是你想要完成什么?您目前正在尝试解决的预期行为或挑战是什么。通过澄清这一点,您可能会提出另一个问题并获得更准确的答案,这可以帮助您在当前的工作中取得进展。祝你好运。


查看完整回答
反对 回复 2021-10-29
  • 1 回答
  • 0 关注
  • 293 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号