7

ユーザーが特定のキーフレーズを入力したときにアクションを実行する jQuery プラグインを開発しようとしています。

たとえば、キーアップで「HELLO」を一致させたいとします。

var controllerKey = [];
$(window).keyup(function(evt) {
    var code = evt.keyCode ? evt.keyCode : evt.which;
    controllerKey.push(code);
}
[...]

次に、controllerKey を文字列 "HELLO" (str.charCodeAt() のおかげ) などと比較しますが、ここでは重要ではありません。この時点ですべてが正常に機能します。

私の問題は、「HeLLo」と一致させたい場合に発生します(実際、文字列に大文字が含まれている場合)。フォーラムで、キーアップまたはキーダウンは何の違いもないことを見ました。

だから私はそれを非常にうまく管理するキープレスを使用しますが、キープレスでは矢印キーなどを一致させることができません(Chromeの場合)。

keypress と keyup を組み合わせることが可能かどうかを知りたい (keypress がイベントと一致しない場合のみ)。

前もって感謝します。

4

2 に答える 2

13

次のように組み合わせることができます。

$(window).on('keyup keypress', function(e) {
   if (e.type=="keyup") {

   } else {
      // it is keypress
   }
});
于 2012-05-31T20:31:48.353 に答える
2

クロス ブラウザの大文字と小文字を区別して比較するために、非表示の入力キー イベントを使用できます。

于 2012-05-31T20:33:59.600 に答える