1

なぜこれが機能しないのですか?

var holdingctrl = false;
$(document).keydown("q",function(e) {
 if(holdingctrl == true) 
 alert("Holding CTRL and pressing Q: Success.");
 e.preventDefault();
});

$(document).keyup("q",function(e) {
 holdingctrl == false 
});

以下の例は問題なく動作しますが、上記の何が間違っているのでしょうか?

$(document).keyup("q",function(e) {
 alert("ONLY pressing Q: Success.");
});
4

3 に答える 3

2

コントロールが現在押されているかどうかを判断する方法が必要でした (e.ctrlKey) - これはうまくいくはずです:

  $(document).keyup(function(e) 
    { 
        if (e.ctrlKey && e.keyCode == 81) 
        {
            alert("CTRL+Q Pressed");
        }
    });

ワーキングデモはこちら

于 2011-01-05T16:30:06.523 に答える
1

このスニペットで何をしようとしているのかは完全にはわかりませんが、プロパティctrlを使用して押されているかどうかを確認できます。event.ctrlKey

$(document).keydown(function(e) {
    if (e.ctrlKey && (e.keyCode == 81)) { // ctrl + q
        alert("Pressing Q and ctrl: Success.");
    }
});
于 2011-01-05T16:30:25.330 に答える
1

何を達成しようとしているかによって異なります。

カップルのメモ:

  • 渡すイベント データは、1 文字ではなくオブジェクトである必要があります。
  • ハンドラーは比較keyupで何もしていません。==おそらく=割り当てを使用するつもりでした。

$(document).keyup( { theChar:"q" }, function(e) {
   holdingctrl = false;
});
于 2011-01-05T16:30:42.787 に答える