当前位置: 代码迷 >> JavaScript >> 如何为一个对象管理两个键盘事件处理程序
  详细解决方案

如何为一个对象管理两个键盘事件处理程序

热度:76   发布时间:2023-06-05 09:33:21.0

我必须为一个html元素同时使用keypress和keydown处理程序。但是keypress和keydown都被触发了(尽管这是可以预期的)。结果,当我按下一个键时,我在contend div中得到了两个字符串。

.only keydown不允许我像'aaaaaaa'这样复制连续的字符串,这是通过将'a'按钮按住到'content'div中来实现的。 我需要两个处理程序,因为如果我按住某个键,我的内容div中会出现单个字母,而不是字母数组。这就是为什么我在这里需要按键处理程序的原因 。但是当另一个是积极。如何完成。或者,如果还有其他更好的方法,请告诉我

 var editor=document.getElementById('editor'); var content=document.getElementById('content'); editor.addEventListener('keypress',function(e){ addText(String.fromCharCode(e.which)); }); editor.addEventListener('keydown',function(e){ addText(String.fromCharCode(e.which)); }); function addText(words){ content.innerHTML=content.innerHTML+words; } 
 #content{ width:500px; height:auto; } #editor{ position:relative; width:400px; height:200px; border:1px solid black; word-wrap: break-word; padding-left:4px; padding-right:4px; padding-bottom:1em; box-sizing:border-box; overflow:scroll; } 
 <div id='editor' contenteditable='true' ></div> <div id='content'></div> 

您可以使用keyup功能来代替keypress和keydown。

  相关解决方案