在JavaScript中连续按enter键时编辑器是否显示正确的行号?
我正在尝试使用JavaScript构建编辑器。我想在按enter键时显示行数,如1,2,3。当按下enter键时,我确实计算了换行次数,但问题出现了,我连续按下enter键,然后换行顺序如1、2、12,因为键控事件在当时不起作用,因为连续按下 我在html中使用textarea在JavaScript中连续按enter键时编辑器是否显示正确的行号?,javascript,html,editor,keyevent,Javascript,Html,Editor,Keyevent,我正在尝试使用JavaScript构建编辑器。我想在按enter键时显示行数,如1,2,3。当按下enter键时,我确实计算了换行次数,但问题出现了,我连续按下enter键,然后换行顺序如1、2、12,因为键控事件在当时不起作用,因为连续按下 我在html中使用textarea <div class="editor-flex"> <div id="editor-numbering"> <div>1</div
<div class="editor-flex">
<div id="editor-numbering">
<div>1</div>
</div>
<div class="editor-block">
<textarea name="text" id="editor"></textarea>
</div>
<div class="output">
Preview
</div>
</div>
预期的结果是连续的行数,就像其他任何类型的编辑器一样,显示结果1、2、3,当连续按enter键或single键更改行数时,我不知道连续按enter键是什么意思?也许,您可以使用
keydown
事件而不是keydup
:
let editor=document.getElementById(“编辑器”)
让EditorNumber=document.querySelector(“#编辑器编号”)
设len=1;
editor.addEventListener('keydown',(事件)=>{
//console.log(editor.value)
让lenNew=editor.value.split('\n')。长度//计数行更改
//console.log(len)
如果(len!=lenNew)
{
设div=document.createElement('div')
div.textContent=len+1
//控制台日志(div)
EditorNumber.append(div)
}
len=lenNew
//console.log(len)
})
请添加您的HTML。
let editor = document.getElementById("editor")
let editorNumbering = document.querySelector('#editor-numbering')
let len =1;
editor.addEventListener('keyup', (event) => {
// console.log(editor.value)
let lenNew = editor.value.split('\n').length //count line change
console.log(len)
if(len!=lenNew)
{
let div = document.createElement('div')
div.textContent = len+1
console.log(div)
editorNumbering.append(div)
}
len = lenNew
console.log(len)
})