有一个<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
事件通常由用户通过以下两种方式之一触发:
用户按下的
CTRL + V
按钮(每个按下的按钮都会触发keydown
+keyup
HTML 事件鼠标右键单击以打开浏览器上下文菜单并从中选择选项粘贴到输入(
contextmenu
触发 HTML 事件)
Vue.js
Vue.js 内置了事件监听器,您可以监听任何原生 HTML 事件。如果你只想监听onpaste
HTML 事件,你只需要@paste
像上面那样监听这个事件。
动机不明
试图修改浏览器原生的行为即paste
事件不会组成的keydown
/ keyup
/contextmenu
事件只要是根本不可能的,当你试图用浏览器本地HTML API工作。如果您选择构建自己的自定义粘贴逻辑并阻止由您决定的默认值,但说实话,我真的不明白您做这样的事情的动机是什么,因为浏览器的原生 HTML 事件完全按照他们的需要做到。
我认为你需要问自己的主要问题是你想要完成什么?您目前正在尝试解决的预期行为或挑战是什么。通过澄清这一点,您可能会提出另一个问题并获得更准确的答案,这可以帮助您在当前的工作中取得进展。祝你好运。
添加回答
举报
0/150
提交
取消