1

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

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

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

我的想法是 $(document) 不是正确的东西,因为该函数从未被调用过。但是因为我找到的所有示例都使用文本字段输入,所以我不知道该放什么。

4

4 回答 4

4

LIVE DEMO

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

如果您需要$('input')而不是$(document)随意使用它,
65event.whichA

于 2013-03-06T21:43:17.633 回答
1

几件事。首先,event.which将返回一个与键相关的数字。其次,您的 jquery 目标需要是一个字符串。所以,改变=='A'to==65$(#k1)to$("#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。

于 2013-03-06T21:44:54.403 回答
0

你的which条件无效。正如其他人提到的那样,应该是65。

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

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

或者,你可以做

console.log(e.which);
于 2013-03-06T21:48:29.287 回答
0

我使用 .live 捕获了 keyup 和 keydown 事件:

$("#my_id").live('keydown',function(event) {

...

});

于 2013-03-06T21:41:20.177 回答