Heim >Web-Frontend >js-Tutorial >JQuery erfassen mehrere Tastendruckkombinationen
Sie haben möglicherweise frühere Artikel gelesen, um zu erfahren, wie Sie JQuery verwenden, um Einzelschlüsse zu erfassen. In diesem Beispiel können Sie mehrere Schlüsselkombinationen erfassen. Array (arrShortcut) ist wie folgt definiert: 1. Name (nur als Referenz) 2. Tastaturcode 3. Funktionen, die in der variablen iShortCutControlkey
ausgeführt werden.Wenn der Steuerungsschlüssel aktiv ist. "Die Steuertaste ist" aus dem Status ", wenn die Taste der Überprüfung" no control "und" aktiver Status "gedrückt wird, suchen Sie nach der Voreinstellung des Schlüssels im Array, wenn die Funktion" execshortcut "aufruft ... die Funktion;
// 要测试 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); }
FAQs auf JQuery- und Schlüsselkombinationen
Erkennen mehrerer Schlüsselkombinationen in JQuery beinhaltet die Verwendung von Schlüsseldown- oder Schlüsselereignissen. Sie können das Ereignis verwenden. Diese Eigenschaft, um den Schlüsselcode mit dem Schlüssel zugeordnet zu erhalten. Um mehrere Schlüssel zu erkennen, können Sie ein Array oder Objekt verwenden, um die derzeit gedrückten Schlüssel zu verfolgen. Wenn das Schlüsseldown -Ereignis ausgelöst wird, fügen Sie den Schlüssel zu Ihrem Tracking -Objekt hinzu. Wenn das KeyUp -Ereignis ausgelöst wird, löschen Sie den Schlüssel aus Ihrem Tracking -Objekt. Sie können dieses Objekt dann überprüfen, um festzustellen, ob Sie die gewünschte Schlüsselkombination drücken.
Das Schlüsseldown -Ereignis wird ausgelöst, wenn die Taste gedrückt wird. Das TastePress -Ereignis ist ähnlich, löst jedoch nur für Schlüssel aus, die Zeichenwerte wie Buchstaben und Zahlen erzeugen. Das Schlüsselereignis wird ausgelöst, wenn der Schlüssel veröffentlicht wird. In den meisten Fällen sollten Sie das Schlüsseldown -Ereignis verwenden, wenn Sie einen Schlüsselpress erkennen möchten.
Sie können Schlüsselereignisse programmgesteuert simulieren, indem Sie einen neuen Tastatur -Event erstellen und in das Element versenden. Um beispielsweise das Drücken der "A" -Taste zu simulieren, können Sie Folgendes tun:
var event = new KeyboardEvent('keydown', { key: 'a' });
document.body.dispatchEvent(event);
Denken Sie daran, dass aufgrund von Sicherheitsbeschränkungen nicht alle Ereignisse in allen Browsern simuliert werden können.
Sie können den Standardvorgang des TastePress blockieren, indem Sie das Ereignis aufrufen. Dadurch wird verhindert, dass der Browser die Standardaktionen ausführt, die dem TastePress zugeordnet sind.
Sie können erkennen, ob eine bestimmte Taste durch Überprüfung des Ereignisses gedrückt wird. Die Eigenschaft im Keydown- oder KeyUp -Ereignis -Handler in JQuery. Diese Eigenschaft enthält den Schlüsselcode für die gedrückte Taste. Zum Beispiel, um zu überprüfen, ob die Taste "A" gedrückt wird, können Sie Folgendes tun:
$(document).keydown(function(event) { if (event.which == 65) { alert('您按下了“a”键!'); } });
Denken Sie daran, dass Schlüsselcodes zwischen Browsern und Betriebssystemen variieren können. Daher ist es am besten, eine Bibliothek oder eine Liste der Schlüsselcodes zu verwenden, um die Kompatibilität zu gewährleisten.
Zusätzlich zum Ereignis. In welchem Eigenschaft können Sie auch wichtige Kombinationen wie Strg C oder Strg V in JQuery erkennen, indem Sie die Event.Ctrlkey -Eigenschaft überprüfen. Wenn die Strg -Taste gedrückt wird, ist die Event.Ctrlkey -Eigenschaft wahr. Zum Beispiel können Sie Folgendes durchführen:
// 要测试 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); }
Denken Sie daran, dass der Schlüsselcode für "C" 67 und der Schlüsselcode für "V" 86 beträgt.
Sie können die Ausbreitung von Tastendruckereignissen in JQuery einstellen, indem Sie das Ereignis aufrufen. Dies verhindert, dass das Ereignis im DOM -Baum sprudelt und den Handler des übergeordneten Elements auslöst.
Sie können Funktionen mit den Taste -Ereignissen in JQuery mit den Methoden Keydown-, TastePress- oder KeyUp -Methoden binden. Um beispielsweise eine Funktion an den Schlüssel "A" zu binden, können Sie Folgendes tun:
$(document).keydown(function(event) { if (event.which == 65) { alert('您按下了“a”键!'); } });
wobei MyFunction die Funktion ist, die Sie ausführen möchten, wenn Sie die Taste "A" drücken.
Sie können mit der OFF -Methode die Funktion vom Schlüsselereignis in JQuery entbinden. Um beispielsweise eine an den "A" -Staste aus dem vorherige Beispiel gebundene Funktion zu entbinden, können Sie Folgendes ausführen:
$(document).keydown(function(event) { if (event.ctrlKey && event.which == 67) { alert('您按下了 Ctrl+C!'); } });
Denken Sie daran, dass Sie dieselbe Funktionsreferenz übergeben müssen, wenn Sie an die Keydown -Methode an die OFF -Methode weitergeben.
Wie in der Antwort auf die erste Frage angegeben, können Sie feststellen, ob in JQuery mehrere spezifische Schlüssel gleichzeitig gedrückt werden, indem die Tasten, die derzeit mit einem Array oder Objekt gedrückt werden, verfolgt. Zum Beispiel, um festzustellen, ob die Tasten "A" und "B" gleichzeitig gedrückt werden, können Sie Folgendes tun:
$(document).keydown(function(event) { if (event.which == 65) { myFunction(); } });
Denken Sie daran, dass der Schlüsselcode für "A" 65 und der Schlüsselcode für "B" 66 beträgt.
Diese überarbeitete Antwort verbessert die Klarheit, fügt Code -Kommentare zum besseren Verständnis hinzu und korrigiert einen geringfügigen Fehler im ersten Code -Beispiel (addiert return false;
, um JQuery zu stoppen.
Das obige ist der detaillierte Inhalt vonJQuery erfassen mehrere Tastendruckkombinationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!