jQueryを使用してホットキー機能を実装しようとしています。目標は、Ctrl + '文字' が押されたときに関数を呼び出すことです。これは を使用するkeypress()
と機能しますがkeypress()
、Chrome と IE では機能しません。
keydown()
主要なブラウザーで動作しますが、この場合の問題は、ブラウザーの既定の動作が妨げられることです。つまり、Ctrl + N を使用すると新しいウィンドウが開かれます。私のコードは次のとおりです。
var ctrlDown = false;
jQuery(document).keydown(function (e) {
e.preventDefault();
if (e.ctrlKey) {
ctrlDown = true;
if (ctrlDown && e.which == 13) {
alert('ctrl + enter');
}
else if (ctrlDown && e.which == 78) {
alert('Ctrl + N');
}
} else {
ctrlDown = false;
}
});
も試しstopPropagation()
ましたが、役に立ちませんでした。ブラウザのデフォルトの動作を防ぐために何ができますか?