0

HTML ファイルには、クリックを検出する単純なものがあります。

<body onload="document.body.focus()" onkeyup="return keypressed(event)">

これを呼び出す JavaScript には、次のものがあります。

function keypressed(e) { 
    var intKey = (window.Event) ? e.which : e.keyCode;
    if(intKey==13) {/* If enter is clicked, do something */ return false;}
    // Add as many key detects under here...
    return true;
}

これは、クリック後に確認する良い方法ですか? 私が尋ねる理由は、私がこれをかなり長い間使用しており、より良い方法があるかどうか疑問に思っているだけです.

記録として、この質問の目的は最善の方法を見つけることです。つまり、jQuery の有無にかかわらず!

4

3 に答える 3

1

より良い方法は、キーの押下をボディではなく特定のオブジェクトでグローバルにリッスンすることです。

JQuery では、これは次のように実現されます。

$('#el').on('keydown', function(e){
    if(e.which == 13){
        alert('keypressed');
    }
});
于 2012-06-25T17:26:14.753 に答える
1

クロスブラウザについてはわかりませんが、ChromeFirefoxでテストされています。これが役立つ場合

window.onload=function(){
    document.body.onkeyup=function(e){
       var keyCode = (window.event) ? event.keyCode : e.which;     
       if(keyCode==13)
       {
           return false;
       }
       else
       {
           //alert(keyCode);
           // do something...
       }
    };
}
于 2012-06-25T18:17:24.283 に答える
0

JQuery を使用すると、ブラウザー間でキー コードとイベント プロパティが均一化され、HTML ファイルからインライン コードを除外するのに役立ちます。

$( document ).ready( function() {
   $( this ).keypress( function( event ) {
      alert( event.which );
   };
} );
于 2012-06-25T17:29:38.993 に答える