Tastendruckereignis-Schlüsselidentifizierung: .keyCode vs. .which
Beim Umgang mit Tastendruckereignissen stehen Entwickler oft vor der Wahl zwischen der Verwendung von .keyCode und .die Tastenanschläge bestimmen. Während beide dazu dienen, die gedrückte Taste zu identifizieren, gibt es subtile Unterschiede und Überlegungen zur browserübergreifenden Kompatibilität.
In der Vergangenheit wurde .keyCode häufig zur Erkennung von Tastendrücken verwendet, seine Unterstützung ist jedoch in allen Browsern inkonsistent. Einige verwenden den Unicode-Code des Zeichens, während andere plattformspezifische Werte verwenden. Diese Inkonsistenz kann zu unerwartetem Verhalten in browserübergreifenden Anwendungen führen.
Auf der anderen Seite handelt es sich um einen eher normalisierten Ansatz. Es gibt einen standardisierten Wert zurück, der die logische Kennung des Schlüssels darstellt, unabhängig vom Browser oder der Plattform. Es wird jedoch möglicherweise in älteren Browsern nicht unterstützt.
Um mögliche browserübergreifende Probleme zu beheben, standardisiert jQuery das Tastendruckverhalten, indem immer .which verwendet wird. Es konvertiert nicht standardisierte Werte aus verschiedenen Browsern in ein konsistentes Format und ist damit eine zuverlässige Wahl für browserübergreifende Kompatibilität.
Bei Verwendung von Vanilla-JavaScript können Entwickler die Browserkompatibilität sicherstellen, indem sie eine Kombination beider Eigenschaften verwenden, z folgt:
<code class="js">var key = 'which' in e ? e.which : e.keyCode;</code>
Dieser Code prüft, ob .which im Ereignisobjekt definiert ist; Wenn ja, verwendet es seinen Wert. Andernfalls wird auf die Verwendung von .keyCode zurückgegriffen.
Alternativ kann ein prägnanterer Ansatz verwendet werden:
<code class="js">var key = e.which || e.keyCode || 0;</code>
Dieser Ausdruck behandelt die Möglichkeit, dass .which 0 ist, indem er auf diesen Wert zurückgesetzt wird Wert am Ende unter Verwendung des leistungsstarken logischen ODER-Operators (||) von JavaScript.
Das obige ist der detaillierte Inhalt von„.keyCode' vs. „.which': Welches ist der beste Keypress-Ereignisschlüsselbezeichner?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!