gpt4 book ai didi

Javascript onkeyup 也是 "slow"吗? .hide() 仅适用于 onkeydown

转载 作者:行者123 更新时间:2023-11-28 01:11:46 24 4
gpt4 key购买 nike

我正在使用一个函数来显示 div:

function showCMD() {
$("#cmd").show("fast");
$('#cmdText').focus();
}

如果用户在键盘上键入“cmd”,就会发生这种情况。

主要代码:

    document.onkeyup = function(event) {

//Save the last three keys
one = two;
two = three;
three = event.keyCode;

if (one == 67 && two == 77 && three == 68 && cmdOpen == false) {
showCMD();
}
//if the pressed key is ENTER and the textarea is focused
if (event.keyCode == 13 && $("#cmdText").is(":focus") == true) {
//passing the code to another function
execCMD(document.getElementById("cmdText").value);

//empty the textarea - works great
document.getElementById("cmdText").value = "";
return false;
}

}

用户输入的代码将在这里处理:

function execCMD(command) {

if(command == "exit") $("#cmd").hide("fast");
console.log(command);
}

每次退出时控制台都会给我。但它并没有隐藏 div #cmd。如果我将 onkeyup 更改为 onkeydown,效果很好。 onkeydown 的问题是,在使用按键序列“cmd”打开命令行后,文本区域显示“d”。

所以要么我无法关闭#cmd,要么每次我打开#cmd 时它都显示“d”。

最后但并非最不重要的 html 代码:

<div id="cmd">
<textarea id="cmdText" maxlength="80"></textarea>
</div>

也许你会知道我的问题的解决方案!到目前为止谢谢您

最佳答案

Live demo

  • 您需要trim()该命令,因为当您键入exit时,该命令将存储exit\n

JS

function execCMD(command) {
if(command.trim() == "exit") // Add trim()
$("#cmd").hide("fast");
console.log(command);
}

function showCMD() {
$("#cmd").show("fast");
$('#cmdText').focus();
}

document.onkeyup = function(event) {

//Save the last three keys
one = two;
two = three;
three = event.keyCode; // Change the order of declaration and definition


if (one == 67 && two == 77 && three == 68 && cmdOpen == false) {
showCMD();
}

//if the pressed key is ENTER and the textarea is focused
if (event.keyCode == 13 && $("#cmdText").is(":focus") == true) {
//passing the code to another function
execCMD(document.getElementById("cmdText").value);

//empty the textarea - works great
document.getElementById("cmdText").value = "";
return false;
}

}

关于Javascript onkeyup 也是 "slow"吗? .hide() 仅适用于 onkeydown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24341696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com