5

私の要件は簡単です。ユーザーがCtrlキーを押すと、ページに通知が表示され、離すと通知が消えるので、Ctrlなどの修飾キーを追跡する必要があります。残念ながら、私はグーグルで手がかりを見つけられませんでした。Mousetrapなどの有名なキーボードライブラリこのkeymasterトピックをカバーしていないようです。

何か案は?

4

3 に答える 3

8

修飾キーがトリガーされますkeydown(ただし、トリガーされませんkeypress)。次に、イベントオブジェクトに定義されているフラグを確認するだけです。shiftKey、、、、など。altKey_ctrlKeymetaKey

完全なリストはここにあります:http://api.jquery.com/category/events/event-object/

于 2013-03-23T04:22:20.210 に答える
1

これを試して-

var ctrlKey = false;
window.onkeydown = function(e) {
    if(e.keyCode == 17) {
        ctrlKey = true;
    }
};
window.onkeyup = function(e) {
    if(e.keyCode == 17) {
        ctrlKey = false;
    }
};
function notify() {
    if(ctrlKey) {
        $('#notification').show();
    } else {
        $('#notification').hide();
    }
}
function main() {
    var _inter = setInterval(notify, 100);
}

main();
于 2013-03-23T04:24:45.143 に答える
0

jQueryを使用すると、keydownおよびkeyupイベントハンドラーを使用するだけで、Ctrlキーが上下するのがわかります。ダウンしているかアップしているかを追跡したい場合は、ダウンしたときにグローバルフラグを設定し、アップしたときにフラグをクリアします。

コード例:

$(document).keydown(function(e) {
    if (e.which == 17) {
        $("#result").append("ctrl key pressed<br>");
    }
});

e.whichのJQueryドキュメント:http://api.jquery.com/event.which/

作業デモ: http: //jsfiddle.net/jfriend00/mezwF/

于 2013-03-23T04:21:53.230 に答える