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

有一个<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');

    },

  }

});


慕标5832272
浏览 294回答 1
1回答

繁花如伊

让我们先建立一些基础知识,以便我们可以继续解决您的问题:建立 HTML 原生事件基础onpaste&nbsp;事件通常由用户通过以下两种方式之一触发:用户按下的CTRL + V按钮(每个按下的按钮都会触发keydown+&nbsp;keyupHTML 事件鼠标右键单击以打开浏览器上下文菜单并从中选择选项粘贴到输入(contextmenu触发 HTML 事件)Vue.jsVue.js 内置了事件监听器,您可以监听任何原生 HTML 事件。如果你只想监听onpasteHTML 事件,你只需要@paste像上面那样监听这个事件。动机不明试图修改浏览器原生的行为即paste事件不会组成的keydown/&nbsp;keyup/contextmenu事件只要是根本不可能的,当你试图用浏览器本地HTML API工作。如果您选择构建自己的自定义粘贴逻辑并阻止由您决定的默认值,但说实话,我真的不明白您做这样的事情的动机是什么,因为浏览器的原生 HTML 事件完全按照他们的需要做到。我认为你需要问自己的主要问题是你想要完成什么?您目前正在尝试解决的预期行为或挑战是什么。通过澄清这一点,您可能会提出另一个问题并获得更准确的答案,这可以帮助您在当前的工作中取得进展。祝你好运。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript