4

ユーザーがパーセント キーまたは 5 の数字を押したかどうかを確認する方法はありますか? FireFox にも同じキーコードがあります。

4

4 に答える 4

14

イベント オブジェクトによって提供される修飾キーを確認できます。event.shiftKeyあなたの特定のユースケースのためのものです。さらにevent.altKey、イベントのプロパティ (Windows の Windows キーと MAC キーボードのコマンド キー) がありますevent.ctrlKeyevent.metaKeyコード例では、keyCode ハンドラー内でチェックを実行する必要があります。

var NUMBER_FIVE = 53;
element.onkeydown = function (event) {
    if (event.keyCode == NUMBER_FIVE) {
        if (event.shiftKey) {
            // '%' handler
        } else {
            // '5' handler
        }
    }
};

また、使用するときevent.keyCodeは、ユーザーがキーボードで押したものを処理しています。特定の ASCII 文字をチェックしたい場合は、代わりに使用できますevent.charCode。このイベント プロパティは、ユーザーがキーボードで何を押しているかではなく、ユーザーが入力している文字を示すためです。これについての完全なガイドは、quirksmode にあります。

于 2012-10-09T14:01:48.067 に答える
4

を使用する場合keydown、5 と % は同じ keyCode です。イベント オブジェクトにはshiftKey、ユーザーが Shift キーを押しているかどうかを示す boolean プロパティもあります。

document.onkeydown = function (e) {
    if (e.keyCode === 53) {
        if (e.shiftKey) {
            // they pressed %
        } else {
            // they pressed 5
        }
    }
};

を使用する場合keypress、それらは 2 つの異なる keyCode です。

document.onkeypress = function (e) {
    if (e.keyCode === 53) {
        // they pressed 5
    }

    if (e.keyCode === 37) {
        // they pressed %
    }
};

このサイトは、keyCodes のテストに適しています。

于 2012-10-09T14:03:58.233 に答える
0

shiftKey 値の確認: jsfiddle

$(document).keydown(function(e){
  if( e.keyCode == 53 ){
      if(e.shiftKey){
        // %  pressed

     }
     else{
       // 5 pressed
     }
  }

});​
于 2012-10-09T14:03:45.003 に答える