javascript - 文本显示有延迟

标签 javascript html

我希望我在文本字段中输入的文本立即显示在 div 中:

function func() {
  document.getElementById("query").innerHTML = document.getElementById("keyword").value;
}
window.onload = function() {
  keyword.onkeydown = function(e) {
    func();
  }
}
<input type="text" id="keyword" size="40">
<div id="query"></div>

有效,唯一的问题是显示有延迟。

所以如果我输入“abc”,它只会显示“ab”。我需要输入另一个字符,例如“abcd”,以便显示“abc”。
最后一个字符总是缺失。

您可以在这里试用:http://jsfiddle.net/285cz0np/

最佳答案

事件被触发 onkeydown。由于输入元素的值尚未更改,因此您看不到结果。

您可以将其更改为 onkeyup,而不是:(updated example) .或者您可以在调用函数之前设置延迟。


或者,您也可以收听 input event :

Example Here

document.getElementById("keyword").addEventListener('input', function (e) {
    document.getElementById("query").textContent = e.target.value;
});

关于javascript - 文本显示有延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33947575/

相关文章:

javascript - Canvas 切换填充整个页面删除滚动条

javascript - 为什么即使使用 'on' 也不会触发此点击功能?

javascript - 在 AngularJS 中缓存图像(使用 md-virtual-repeat)

javascript - 重置 HTML 正文后 Bootstrap 模式不会关闭

javascript - 我无法让 pagify.js 工作

javascript - 我如何使用可请求扩展的 Bluebird promise ?

javascript - react : Parent component refs not accessible to newly mounted child component?

javascript - 使用按钮展开div,然后将页面滚动到该div

javascript - 如何在 JavaScript 中检测源文件类型

html - 我怎样才能防止我的动画突然从 'snapping' 中结束?