使用 jquery 陷阱按键
Trap keypress using jquery
我已经编写了一个代码块来捕获按键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.$);
}
非常感谢任何帮助。
这是在 jquery 中执行 ctrl+s 命令的方法,每次都有效:
$(window).keypress(function(event) {
if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true;
alert("Ctrl-S pressed");
event.preventDefault();
return false;
});
这个post是为同样被这个问题困扰的人准备的,我现在已经解决了。我的原始代码块的问题是,一旦 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.$);
}
我已经编写了一个代码块来捕获按键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.$);
}
非常感谢任何帮助。
这是在 jquery 中执行 ctrl+s 命令的方法,每次都有效:
$(window).keypress(function(event) {
if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true;
alert("Ctrl-S pressed");
event.preventDefault();
return false;
});
这个post是为同样被这个问题困扰的人准备的,我现在已经解决了。我的原始代码块的问题是,一旦 isCtrl
被设置为 true,它仍然是 true。这意味着当再次检查它是否被按下时,是否再次按下并不重要,因为它已经设置为 true。当条件语句具有 运行.
这是新的代码块:
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.$);
}