gpt4 book ai didi

javascript - 使用 jquery 捕获按键

转载 作者:行者123 更新时间:2023-12-02 15:00:36 24 4
gpt4 key购买 nike

我编写了一个代码块来捕获Ctrl + s上的按键,它可以工作,并且在事件运行时发出警报,以显示代码块已成功运行。稍后此代码块将被保存命令替换。

但是我遇到了一些麻烦,因为第一次按下 Ctrl + s 时它可以工作,但是此后每次 s 按钮都会单独触发事件

这是代码块:

var isCtrl = false;
ck.on('contentDom', function (evt) {
ck.document.on('keyup', function (event) {
if (event.data.$.keyCode === 17) isCtrl = false;
});

ck.document.on('keydown', function (event) {

if (event.data.$.keyCode === 17) isCtrl = true;
if (event.data.$.keyCode === 83 && isCtrl === true) {
//The preventDefault() call prevents the browser's save popup to appear.
//The try statement fixes a weird IE error.
try {
event.data.$.preventDefault();
} catch (err) { }

alert('ctrl-s');

return false;
}
});

}, ck.element.$);
}

非常感谢任何帮助。

最佳答案

这篇文章是写给同样遇到这个问题的人的,我现在已经解决了。我原始代码块的问题是,一旦将 isCtrl 设置为 true,它就保持为 true。这意味着当再次检查是否被按下时,是否再次按下并不重要,因为它已经设置为 true。我添加了一行,以便在条件语句运行时将其更改回 false。

这是新的代码块:

    var isCtrl = false;
ck.on('contentDom', function (evt) {
ck.document.on('keyup', function (event) {
if (event.data.$.keyCode === 17) isCtrl = false;
});
ck.document.on('keydown', function (event) {
if (event.data.$.keyCode == 17) isCtrl = true;
if (event.data.$.keyCode == 83 && isCtrl === true) {
//The preventDefault() call prevents the browser's save popup to appear.
//The try statement fixes a weird IE error.
try {
event.data.$.preventDefault();
} catch (err) { }
alert('ctrl-s');
isCtrl = false;
return false;
}

});

}, ck.element.$);
}

关于javascript - 使用 jquery 捕获按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35453615/

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