2014-10-27 27 views
-1

我做了一個div,當你按下「e」時,它會在文本上放置一個文本框。當你按Tab鍵時,它會把內容放到div中。模糊輸入框後,keydown事件不再可見

但是,在發生這種情況之後,它不再識別關鍵事件,直到您再次單擊窗口(我90%確定它轉到地址欄 - 至少這就是現在在jsfiddle中對我所做的事情下面的鏈接 - 但在這一點上嘗試了很多東西,我有相互衝突的經歷)。

http://jsfiddle.net/gt05Lwx4/

解決此工作是使你的 #container可調焦帶 tabindex值比臨時文本框的更大的
StackOverflow won't let me link to jsfiddle without having a code block (wtf?) 
+0

我不能複製您要舉報什麼。模糊後,我可以繼續輸入或按'e'再次編輯文本框。 – JSuar 2014-10-27 02:40:37

+1

代替投訴,您可以將代碼放在該代碼塊中! – techfoobar 2014-10-27 02:41:31

+0

嗯,我剛剛在Opera 25,Chrome 38和Safari 7上試過。在Safari中,它跳轉到地址欄。我意識到它在其他人也這樣做(我有一個插件,vimium,我關閉了jsfiddle,但它不需要b/c jsfiddle在另一個域的iframe中運行它)。我會更新這個問題來反映這一點。 – 2014-10-27 02:46:46

回答

1

的一種方式。然後讓瀏覽器的默認行爲通過tabindices(默認行爲是將焦點移到具有更高的tabindex的元素)。

演示:http://jsfiddle.net/gt05Lwx4/2/

代碼:

<div id="container" tabindex="2"></div> 

而當你添加文本框,這樣做:

var textBox = $('<input type="text" tabindex="1" name="name"></input>') 
... 
+0

Omg O.o我在1小時前嘗試過這種方式,但我選擇了'tabindex =「1」'>。< – 2014-10-27 02:53:03