Javascript 如何克服浏览器更新event.target.value速度慢的问题

Javascript 如何克服浏览器更新event.target.value速度慢的问题,javascript,settimeout,Javascript,Settimeout,问题背景:在下面的简化测试代码中,当按下一个键时,函数将event.target.value的值输出到div元素。问题在于,在event.key添加到event.target.value之前,浏览器已经读取了event.target.value,这使得输出在div 1字符后面 严格使用; document.querySelector'input'。addEventListener'keydown',functionevent{ document.querySelector'div'.textC

问题背景:在下面的简化测试代码中,当按下一个键时,函数将event.target.value的值输出到div元素。问题在于,在event.key添加到event.target.value之前,浏览器已经读取了event.target.value,这使得输出在div 1字符后面

严格使用; document.querySelector'input'。addEventListener'keydown',functionevent{ document.querySelector'div'.textContent=event.target.value; };
输入值在keyup或input事件上更新,而不是在keydown上更新。因此,如果您需要一个单独的div中的值,您可以读取事件的属性,如event.key、event.shiftKey等。

它必须是keydown吗?在我正在处理的脚本中,它必须是keydown。但总的来说,这是一个我见过多次出现的问题。你说你需要听keydown…但是有没有原因让你不能同时听keydown和input,并使用input listener来更新你的div?这将比设置超时可靠得多。如果您需要在监听器之间共享数据,您可以使用自定义属性或共享范围变量或其他东西,例如,正在按下的修改键etc@David784你是100%正确的,这正是我要做的。我没有考虑使用额外的键盘。这很明显,但如果没有一些输入,我想不起来。