2015-03-31 53 views
2

我必須失去它,我不能得到keydown事件的工作:爲什麼keydown事件不能在常規容器div上工作?

我想:

$('#container').keydown(function() { 
      console.log("down"); 
      alert('down'); 
    }); 

也試過:

$('#container').on('keydown',function() { 
      console.log("down"); 
      alert('down'); 
    }) 

http://jsfiddle.net/foreyez/mwptttdv/

+3

因爲只有形成元素(幾乎)是可聚焦的,並且僅集中元件可以檢測鍵盤事件。您可以將'tabindex =「0」'添加到'div' [獲得焦點](http://jsfiddle.net/rvL64c7j/)。 – Teemu 2015-03-31 16:41:37

+0

ahhh與我同時回答。添加您的答案作爲答案。刪除我的。 – Ted 2015-03-31 16:44:16

+1

@Ted我正在尋找一個dup,必須有一個... [Here](http://stackoverflow.com/questions/3759339/keypress-on-a-div-tag)和[another] (http://stackoverflow.com/questions/3149362/capture-key-press-or-keydown-event-on-div-element)。 – Teemu 2015-03-31 16:45:05

回答

3

你居然可以讓瀏覽器識別div上的keydown,如果你給它一個tabindex屬性:

<div id='container' tabindex="1"></div> 

jsFiddle example

+0

聰明。可能值得注意的是,元素必須被選中。 – Wex 2015-03-31 16:52:30