28

Ctrl+が押された場合に実行されるjqueryの関数をコーディングしていますRが、左右のctrlキーコードが何であるかがわからないようです...誰か助けてもらえますか?

アップデート

    ///this works
    $(document).keydown(function(e){
      if(e.keyCode==17){alert("control was pressed")};
 });

次の質問-コントロールキーの押下と別のキーの押下をリンクして機能を実行するにはどうすればよいですか?

  if(e.keyCode==17){llCtrlPress=1};
   if(e.keyCode==97 && llCtrlPress=1){DO SOMETHING}
  ????????????

それはうまくいくようですが、キーアップ時にllCtrlpressを「0」に戻すにはどうすればよいですか?

4

11 に答える 11

50

文字をトラップするには、 keydown関数を使用する必要がありますCtrlCtrl+の私の実装は次のAとおりです。

    $(document).keydown(function(e) {
        if (e.keyCode == 65 && e.ctrlKey) {
            alert('ctrl A');
        }
    });

Ctrl-R は、ほとんどのブラウザでReload Pageであるため、より困難です。これは、javascript が実行されず、ページが更新されることを意味します。

また、keyCodeの値は、keydown/keyupup 関数と keypress 関数では異なります。

編集: ctrl変数を削除し、ctrlKeyを忘れました

于 2010-05-04T16:50:52.120 に答える
5

使用できるキーコードの完全なリストを次に示します。

于 2010-05-04T16:41:10.383 に答える
5

F5これは、IE と firefox で更新を無効にするために使用しているコードです (これは、Ctrl+ F5Ctrl+でうまく機能しますR) 。

<script language="javascript" type="text/javascript">
    //this code handles the F5/Ctrl+F5/Ctrl+R
    document.onkeydown = checkKeycode
    function checkKeycode(e) {
        var keycode;
        if (window.event)
            keycode = window.event.keyCode;
        else if (e)
            keycode = e.which;

        // Mozilla firefox
        if ($.browser.mozilla) {
            if (keycode == 116 ||(e.ctrlKey && keycode == 82)) {
                if (e.preventDefault)
                {
                    e.preventDefault();
                    e.stopPropagation();
                }
            }
        } 
        // IE
        else if ($.browser.msie) {
            if (keycode == 116 || (window.event.ctrlKey && keycode == 82)) {
                window.event.returnValue = false;
                window.event.keyCode = 0;
                window.status = "Refresh is disabled";
            }
        }
    }
</script>

ユーザーエージェントを使用してブラウザーの種類を検出したくない場合 ($.browser は navigator.userAgent を使用してプラットフォームを判別します)、以下を使用できます。

if('MozBoxSizing' in document.documentElement.style)- Firefox の場合は true を返します

于 2012-11-14T10:44:25.393 に答える
2

ctrlKeyここで使用できるはずのブール値プロパティがあります...

$(document).keypress(function(e) { 
   alert("Ctrl is pressed: " + e.ctrlKey); 
}); 
于 2010-05-04T16:56:46.867 に答える
2

なぜ使わないのですe.ctrlKeyか?

 if (e.keyCode == 65 && e.ctrlKey) {
     alert('ctrl A');
 }

編集: ctrl-r キーの押下を検出し、ブラウザのリロードを停止する適切な関数を次に示します。

function keydown(e) {
    if (e.ctrlKey && e.keyCode == 82) {
        // 82 = r

        // TODO: your thing.

        if (e.preventDefault) {
            e.preventDefault();
        }
        else {
            return false;
        }
    }
}

私はjqueryの初心者です。

$(document).keydown(keydown);

右?

于 2010-05-04T16:58:38.983 に答える
1
 $(document).ready(function () {
     $(document).keyup(function (e) {
         if (e.keyCode == 81 && e.ctrlKey) { //CTRL+Q
             alert("CTRL+Q");
         } else if (e.keyCode == 27) { //ESCAPE
             alert("escape");
         } else if (e.keyCode == 67 && e.altKey) { // ALT+C
           alert("ALT+C");
        }     
    });
});

キーコード

于 2014-05-13T12:11:18.773 に答える
0

キーのキーコードCtrlはです11

$(document).keypress(function(e) { 


  alert("Ctrl is pressed: " + e.ctrlKey); 
}); 
于 2012-04-19T07:29:12.053 に答える
-1
@HostListener('window:keydown', ['$event'])
  keyEvent(event: KeyboardEvent) {

   if (event.ctrlKey && event.keyCode == 82)
    {

    }
  }
于 2019-03-06T09:25:22.343 に答える