ホームページ >ウェブフロントエンド >jsチュートリアル >jQueryは複数のキープレスの組み合わせをキャプチャします
以前の記事を読んで、jQueryを使用して単一のキーをキャプチャする方法を学ぶことができたかもしれません。この例では、複数のキーの組み合わせをキャプチャできます。配列(arrshortcut)は次のように定義されます。1。名前(参照のみ)
制御キーがアクティブ状態「制御キーが「状態外」である場合、検証キーが「コントロール」と「アクティブ状態」を押した場合、アレイのキーのプリセットを「execshortcut」と呼ぶ場合、アレイのキーのプリセットを探します。JQueryとKeyの組み合わせのFAQ
// 要测试 CTRL + Z = alert(2) var arrShortCut = [{ name: 'test1', key: 15, fx: 'alert(1);' }, { name: 'test2', key: 90, fx: 'alert(2);' }]; var iShortCutControlKey = 17; // CTRL; var bIsControlKeyActived = false; $(document).keyup(function(e) { if (e.which == iShortCutControlKey) bIsControlKeyActived = false; }).keydown(function(e) { if (e.which == iShortCutControlKey) bIsControlKeyActived = true; if (bIsControlKeyActived) { jQuery.each(arrShortCut, function(i) { if (arrShortCut[i].key == e.which) { execShortCut(arrShortCut[i].fx); return false; // 停止迭代 } }); } }); function execShortCut(fx) { eval(fx); }jQueryで複数のキー組み合わせを検出する方法は?
jQueryでの複数のキーの組み合わせの検出には、キーダウンまたはキーアップイベントの使用が含まれます。イベントを使用できます。これは、キーに関連付けられたキーコードを取得します。複数のキーを検出するには、アレイまたはオブジェクトを使用して、現在押しているキーを追跡できます。キーダウンイベントがトリガーされたら、追跡オブジェクトにキーを追加します。キーアップイベントがトリガーされたら、追跡オブジェクトからキーを削除します。その後、このオブジェクトを確認して、目的のキーの組み合わせを押しているかどうかを確認できます。
キーが押されたときにキーダウンイベントがトリガーされます。キープレスイベントは似ていますが、文字や数字などの文字値を生成するキーに対してのみトリガーされます。キーがリリースされると、キーアップイベントがトリガーされます。ほとんどの場合、キープレスを検出する場合は、キーダウンイベントを使用する必要があります。
新しいキーボードEventを作成し、要素にディスパッチすることで、キーイベントをプログラム的にシミュレートできます。たとえば、「A」キーを押すのをシミュレートするには、次のことを行うことができます。
var event = new KeyboardEvent('keydown', { key: 'a' });
jQueryでのキープレスのデフォルト操作をブロックする方法は? document.body.dispatchEvent(event);
jqueryのキーダウンまたはキーアップイベントハンドラーのプロパティをチェックすることにより、特定のキーが押されているかどうかを検出できます。このプロパティには、キーが押されたキーコードが含まれます。たとえば、「A」キーが押されているかどうかを確認するには、次のことを行うことができます。
プロパティでは、event.ctrlkeyプロパティをチェックして、jqueryのCtrl CやCtrl Vなどのキーの組み合わせを検出することもできます。 Ctrlキーが押されている場合、event.ctrlkeyプロパティがtrueになります。たとえば、Ctrl Cの組み合わせを検出するには、次のことを行うことができます。
// 要测试 CTRL + Z = alert(2) var arrShortCut = [{ name: 'test1', key: 15, fx: 'alert(1);' }, { name: 'test2', key: 90, fx: 'alert(2);' }]; var iShortCutControlKey = 17; // CTRL; var bIsControlKeyActived = false; $(document).keyup(function(e) { if (e.which == iShortCutControlKey) bIsControlKeyActived = false; }).keydown(function(e) { if (e.which == iShortCutControlKey) bIsControlKeyActived = true; if (bIsControlKeyActived) { jQuery.each(arrShortCut, function(i) { if (arrShortCut[i].key == e.which) { execShortCut(arrShortCut[i].fx); return false; // 停止迭代 } }); } }); function execShortCut(fx) { eval(fx); }「C」の重要なコードは67であり、「V」の重要なコードは86であることを忘れないでください。
jQueryのキープレスイベントの伝播を停止する方法は?
jqueryの重要なイベントに関数をバインドする方法は?
ここで、MyFunctionは「A」キーを押すときに実行する関数です。
$(document).keydown(function(event) { if (event.which == 65) { alert('您按下了“a”键!'); } });
jQueryの重要なイベントから機能を解除する方法は?
キーダウンメソッドに渡すと同じ関数参照を渡す必要があることを忘れないでください。
$(document).keydown(function(event) { if (event.ctrlKey && event.which == 67) { alert('您按下了 Ctrl+C!'); } });jQueryで複数の特定のキーが同時に押されているかどうかを検出する方法は?
最初の質問への回答に記載されているように、アレイまたはオブジェクトを使用して現在押しているキーを追跡することにより、複数の特定のキーがjQueryで同時に押されているかどうかを検出できます。たとえば、「A」と「B」キーが同時に押されているかどうかを検出するには、次のことを行うことができます。
この改訂された応答は、明確さを改善し、より良い理解のためにコードコメントを追加し、最初のコード例でマイナーなエラーを修正します(
を追加して、一致した後、jquery.eachの反復もあります。以上がjQueryは複数のキープレスの組み合わせをキャプチャしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。