【问题标题】:Trigger the keyup function when someone copy and paste有人复制粘贴时触发keyup功能
【发布时间】:2015-05-19 20:28:33
【问题描述】:

我有一个用于多个文本框的键控功能。当有人将某些内容复制并粘贴到文本框中时,如何触发 keyup 功能?

.on("click blur keyup", ".emotion", function() {
     //match something
});

【问题讨论】:

标签: javascript jquery


【解决方案1】:

将事件keyup 切换为input,只要在字段中输入内容就会触发,即使正在粘贴文本(通过按CTRL + V 或鼠标右键 » 粘贴。

.on('input', '.emotion', function() {   
    // Do your stuff.
});

【讨论】:

【解决方案2】:

这会做你想做的事:

$("#editor").on('paste', function(e) {
  $(e.target).keyup();
});

$("#editor").on('keyup', function(e) {
  alert('up');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="editor">

【讨论】:

  • 谢谢。 function(e) - 我可以用别的东西代替(e)吗?喜欢(a)
  • 是的,你可以随意调用事件对象。
  • 不要使用粘贴事件。 MDN 声明它不适合 2017 年的生产。
【解决方案3】:

使用paste 事件。据我测试,它适用于 Ctrl+V 粘贴,然后右键单击>粘贴粘贴。

【讨论】:

  • 只需将其添加到您的函数中 - .on("click blur keyup paste", function() {...});
  • 你也可以试试绑定功能-$('#this-id').bind('input', function() {});
  • 不要使用粘贴事件。 MDN 声明它不适合 2017 年的生产。
猜你喜欢
  • 2021-07-25
  • 1970-01-01
  • 2017-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多