Maison  >  Article  >  interface Web  >  « .keyCode » vs « .which » : quel est le meilleur identifiant de clé d'événement de pression de touche ?

« .keyCode » vs « .which » : quel est le meilleur identifiant de clé d'événement de pression de touche ?

DDD
DDDoriginal
2024-10-30 06:49:28673parcourir

  `.keyCode` vs. `.which`: Which is the Best Keypress Event Key Identifier?

Identification des touches d'événement de pression de touche : .keyCode vs. which

Dans la gestion des événements de pression de touche, les développeurs sont souvent confrontés au choix entre utiliser .keyCode et .qui détermine les frappes au clavier. Bien que les deux servent à identifier la touche enfoncée, il existe des différences subtiles et des considérations de compatibilité entre navigateurs.

Historiquement, .keyCode était largement utilisé pour détecter les pressions sur une touche, mais sa prise en charge est incohérente entre les navigateurs. Certains utilisent le code Unicode du caractère, tandis que d'autres utilisent des valeurs spécifiques à la plateforme. Cette incohérence peut conduire à un comportement inattendu dans les applications multi-navigateurs.

D'un autre côté, .qui est une approche plus normalisée. Il renvoie une valeur standardisée qui représente l'identifiant logique de la clé, quel que soit le navigateur ou la plateforme. Cependant, il peut ne pas être pris en charge dans les anciens navigateurs.

Pour résoudre les problèmes potentiels entre navigateurs, jQuery standardise le comportement des touches en utilisant toujours .which. Il convertit les valeurs non standardisées de différents navigateurs dans un format cohérent, ce qui en fait un choix fiable pour la compatibilité entre navigateurs.

Si vous utilisez du JavaScript Vanilla, les développeurs peuvent garantir la compatibilité des navigateurs en utilisant une combinaison des deux propriétés, comme suit :

<code class="js">var key = 'which' in e ? e.which : e.keyCode;</code>

Ce code vérifie si .qui est défini dans l'objet événement ; si c'est le cas, il utilise sa valeur. Sinon, il revient à utiliser .keyCode.

Alternativement, une approche plus concise peut être utilisée :

<code class="js">var key = e.which || e.keyCode || 0;</code>

Cette expression gère la possibilité que .which soit 0 en le restaurant à cela valeur à la fin, en utilisant le puissant opérateur logique OU de JavaScript (||).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn