在jQuery中按键

时间:2014-03-25 03:03:24

标签: javascript jquery

我使用jQuery来进行按键事件。这是我的命令:

$(document).ready(function() {
  $(document).bind('keydown', 'f1', function() {
    alert('f1');
    });
});

$(document).ready(function() {
    $(document).bind('keydown', 'f2', function() {
        alert('f2');
    });
});

我想按 F1 键时我会得到alert('f1'),当我按> kbd> F2键时,我会得到alert('f2')

但是当我按 F1 键时,我得到2 alert('f1')。 当我按 F1 键时如何获得alert('f1')

4 个答案:

答案 0 :(得分:2)

如果您想要立即反应,这是最佳选择

http://jsfiddle.net/sZmST/18/

$(document).keypress(function(k) {
    switch(k.keyCode){
        // user presses the "F1"
        case 112: alert("F1"); 
        break;
        // user presses the "F2"
        case 113: alert("F2"); 
        break;
    }
});

为了演示JS-Fiddle,我提供了一个映射出keyCode s的工作演示:

HTML:

<input id="whichkey" value="play_here"><span>This will tell you char_code</span>
<p>Click into our body and press F1 or F2. Problem solved.

的Javascript(满):

$("#whichkey").on("keydown", function(e) {
    alert(e.which);
});

$(document).keypress(function(k) {
    console.log(k.keyCode);
    switch(k.keyCode)
    {
        // user presses the "F1"
        case 112: alert("F1"); 
        break;

        // user presses the "F2"
        case 113: alert("F2"); 
        break;
    }
});

再次,请看这里。这会更有意义:

http://jsfiddle.net/sZmST/18/


我觉得你正试图扩展它,所以我给你一个解决方案,你可以这样做。我在许多javascript游戏中使用它作为core function,并且最好始终考虑可扩展性。

任何人都可以高尔夫代码(让它尽可能快速和最短地运行),但除非它具有100%特定任务,否则考虑到更广泛的频谱,您将更好地发展{{ 1}}可以做。

答案 1 :(得分:0)

我宁愿使用.keyup()之类的

// f1 = 112
// f2 = 113
// f3 = 114
$(document).keyup(function (event) {
    if (event.keyCode == 112) {
        console.log("you pressed F1");
    };
}); //keyup

参见 JSFIDDLE

答案 2 :(得分:0)

你可以这样做:

 $(document).ready(function () {
    $(document).keydown( function (e) {
        if (e.keyCode == 112) alert('f1');
        else if (e.keyCode == 113) alert('f2');
    });
 });

的jsfiddle:http://jsfiddle.net/C97h6/1

答案 3 :(得分:0)

dom ready

上试用此代码
$('body').keydown(function(e){
    if(e.keyCode=="112")
    {
        alert("f1"); 
        e.preventDefault();
    }
    if(e.keyCode=="113")
    {
        alert("f2");
       e.preventDefault();
    }
});

Demo此处