如何使 Ctrl + V 或粘贴不会触发keyup
功能TWICE?
这对我来说是个问题,因为我制作了自动完成功能,当我粘贴到文本框中时,它会显示两次相同的数据。我希望现在更有意义。
编辑:
好的,我已经找到了如何通过$('#this-id').bind('paste', function() {});
检测 Ctrl + V
但现在另一个跟进问题是如何将其与keyup
结合使用,以便在按下paste
时keyup
不再触发。
答案 0 :(得分:7)
好的伙计们,谢谢大家的答案,但在我阅读时,很多博客都说:“如果您正在实施自动完成功能,请不要依赖'keyup'功能< /强>“
所以我将代码更改为$('#this-id').bind('input', function() {});
它有效,我现在不必担心粘贴或其他任何事情。我希望这对其他人也有帮助。
答案 1 :(得分:0)
你可以试试这个
$(window).on('keyup', function (event) {
if (!event.ctrlKey) {
/* here your code for all keys besides CTRL ;-) */
}
});
答案 2 :(得分:0)
您可以使用下划线的去抖动来设置读取键盘事件的延迟。
请参阅以下工作代码:
JS:
var count = 0;
function lookup() {
$('div#test').html($('input.text').val());
count++;
$('div#count').html(count);
}
$(document).keyup( _.debounce(lookup, 250, true) );
HTML:
<div>
<input type="text">
</div>
Input: <div id="test"></div>
Keyup Count: <div id="count"></div>
fromcore.js来自:
http://documentcloud.github.com/underscore/underscore-min.js