問題描述
我知道要處理輸入字段中的鍵盤事件,您可以使用:
I know that for handling keyboard events in an input field you can use:
$('input').keyup(function(e){
var code = e.keyCode // and 13 is the keyCode for Enter
});
但是,現在,我有一些 div
和 li
元素,我沒有 form
元素,我的也沒有元素被認為是表單元素,它們都不接受 focus 或 tab 之類的東西.
But, now, I have some div
and li
elements, and I don't have a form
element, and none of my elements are considered to be form elements and none of them accept focus or tab and stuff like that.
但現在我需要處理 div 元素中的 keyup
(或 keydown
或 keypress
無關緊要)事件.我試過了:
But now I need to handle the keyup
(or keydown
, or keypress
, doesn't matter) event in a div element. I tried:
$('div#modal').keyup(function(e){
if (e.keyCode == 13)
{
$('#next').click(); // Mimicking mouse click to go to the next level.
}
});
但問題是,它不起作用.我該怎么辦?
But the problem is, it doesn't work. What should I do?
推薦答案
一個div
默認無法獲得焦點.但是,您可以通過將 tabindex
屬性添加到 div
來更改它:
A div
by default cannot be given focus. However, you can change that by adding a tabindex
attribute to the div
:
<div tabindex="0" id="example"></div>
然后你可以給 div
焦點,也可以用 hover
事件來模糊它:
You can then give the div
focus, and also blur it with the hover
event:
$("#example").hover(function() {
this.focus();
}, function() {
this.blur();
}).keydown(function(e) {
alert(e.keyCode);
});
當 div
有焦點時,它將接受鍵盤事件.您可以在此處查看此工作的示例.
When the div
has focus, it will accept keyboard events. You can see an example of this working here.
這篇關于如何在不接受焦點的元素上獲取鍵盤事件?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!