1

以下のスニペットでは、Ctrl+ Enter( event.which == 13) が機能しています。ただし、Ctrl+ R( event.which == 9) はありません。

if ($('.selector')) {                 
  $(document).keypress(function(event) {
    if ( event.altKey && event.which == 13 ) {                  
      $('.link a').trigger('click');                          
    } else if ( event.altKey && event.which == 82 ) {           
      $('.link a').trigger('click');     
    } else {
      return false;
    }
  });
}
4

3 に答える 3

1

コードの問題は、keyPressリスナーの動作が異なり、異なるキーコードのセットを使用することです。キーkeyPressはwhileです。_r114keyDown82

また、別の問題は、キーを離した後に keypress が実行されるため、ブラウザーのデフォルトのリロード機能が機能をオーバーライドすることです。これを解決するには、 に変更keypresskeydownます。

$(document).keydown(function(e){
    if(e.which === 82 && e.ctrlKey){    //keycode is 82 for keydown
        alert("Pressed!");
        e.preventDefault();             //stop browser from reloading
    }
});

http://jsfiddle.net/DerekL/3P9NS/show

PS: Firefox は無視しているようですe.preventDefault(W3C の基準では無視されるべきです)。すべてのブラウザーをサポートするための最善の方法は、別の組み合わせを選択するか、ctrl + alt + r.

if(e.which === 82 && e.ctrlKey && e.altKey){
于 2013-08-12T02:07:16.720 に答える