开放式大括号的键码是什么{

问题描述 投票:-4回答:2

我正在创建一个带有自动完成系统的代码镜像实例,该系统将在任何按键时激活。但无论何时键入:{即使存在if语句阻止密钥代码219显示自动完成,仍会显示自动完成。我想停止{打开自动完成菜单的原因是用户通常会按Enter进入一行,但它会从自动完成中提出建议。我已经尝试过使用charCode但是没有用。

这是我的代码:

editor.on("keyup", function (cm, event) {
            if (!cm.state.completionActive && event.keyCode != 13 && event.keyCode != 219) { 
                CodeMirror.commands.autocomplete(cm, null, {completeSingle: false});
            }
        });

我希望每当用户按下{时,都不会在codemirror中打开自动完成菜单

javascript jquery codemirror keycode
2个回答
0
投票

您正在使用带有Enter键和&&{,因此它永远不会进入if条件

editor.on("keyup", function (cm, event) {
        if (!cm.state.completionActive && (event.keyCode != 13 || event.charCode != 219)) { 
            CodeMirror.commands.autocomplete(cm, null, {completeSingle: false});
        }
    });

0
投票

我通过用keyCode替换charCode并将事件更改为keypress来解决这个问题。

editor.on("keypress", function (cm, event) {
            if (!cm.state.completionActive && event.charCode != 13 && event.charCode != 123) {
                CodeMirror.commands.autocomplete(cm, null, {completeSingle: false});
            }
        });
© www.soinside.com 2019 - 2024. All rights reserved.