javascript - 在 JavaScript 中连续按下回车键时编辑器没有显示正确的行号?

标签 javascript html editor keyevent

我正在尝试使用 JavaScript 构建编辑器。我想在按回车键时显示行数,如 1、2、3 行更改。当按下 enter 时我确实计算了换行但是问题出现了我连续按下 enter 然后换行顺序如 1,2,12 因为 keyup 事件当时不起作用因为连续按下。

我在 html 中使用 textarea

    <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>

main.js 文件在这里 div 是用来存储新行的

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)

})

预期的结果是连续的行数,就像在显示结果 1、2、3 的任何其他编辑器中一样,当行更改时连续或按回车键

最佳答案

我不知道不断按下回车键是什么意思?也许,您可以使用 keydown 事件代替 keyup:

let editor =  document.getElementById("editor")
let editorNumbering = document.querySelector('#editor-numbering')
let len =1;

editor.addEventListener('keydown', (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)

})
<textarea id="editor"></textarea>
<div id="editor-numbering"></div>

关于javascript - 在 JavaScript 中连续按下回车键时编辑器没有显示正确的行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55719748/

相关文章:

javascript - 使用 "Next 3 images"制作按钮

javascript - 尝试使用 twitter bootstrap-tabs.js 实现 'next' 按钮

text - Geany 编辑器弄乱了特殊字符

ide - 搜索时如何忽略 Sublime Text 中的长行

javascript - 显示部分的字数统计(使用 :target selector)

javascript - 字母数字键的编辑器按键锁定

javascript - 找到一个相似的属性然后遍历对象

javascript - JS : Null-Safe Array Concat

javascript - 无法访问 Javascript 数组中的变量。 Console.log 说未定义

javascript - 单击后如何使启动页面div淡出