keydown或keyup上的jQuery调用事件

时间:2013-03-06 21:38:08

标签: javascript jquery event-handling keydown keyup

我正在尝试更改keydown和keyup上的div元素的颜色,但我似乎无法让它工作。我检查了我可以在互联网上找到的每个例子,但我的代码似乎不起作用。

我发现的所有示例似乎都使用表单输入文本字段作为按键的目标。我不想这样做。这是我的代码:

$(document).keydown(function(e){
    if(e.which == 'A')
    {
        alert('key was pressed');
        $(#k1).css('background-color', "blue");
    }
});

我的想法是$(文档)不正确,因为函数永远不会被调用。但是因为我找到的所有例子都使用了文本字段输入,所以我只能弄清楚要放在那里的内容。

4 个答案:

答案 0 :(得分:4)

LIVE DEMO

$(document).keydown(function(e){
    if(e.which == 65){
        alert('Pressed key was: '+ e.which );
        $("#k1").css( { backgroundColor:"blue" } );
    }
});

如果您需要$('input')代替$(document),请随时使用它,
65 A

event.which

答案 1 :(得分:1)

一些事情。首先,event.which将返回与密钥相关的数字。其次,你的jquery目标需要是一个字符串。因此,将=='A'更改为==65,将$(#k1)更改为$("#k1"),这样就可以了。这是一个演示:http://jsfiddle.net/AeBtV/

JS

$(document).keydown(function(e){
 if(e.which == 65)
 {
    alert('A key was pressed');
    $("#k1").css('background-color', "blue");
 }
});

注意关键代码:

A到Z的范围是65-90。因此A是65,Z是90,R是82。

答案 2 :(得分:0)

我使用.live:

捕获了keyup和keydown事件

$(“#my_id”)。live('keydown',function(event){

...

});

答案 3 :(得分:0)

您的which条件无效。应该像其他人提到的那样是65岁。

http://api.jquery.com/keypress/

如果向下滚动,则可以键入任意键并查看每个键的值。

或者,您可以

console.log(e.which);