2011-06-22 106 views
4

我開發jQuery的虛擬鍵盤,我的問題是:防止丟失焦點,當點擊了輸入

當我點擊鍵盤的按鍵輸入的過程中點擊失去焦點,如果輸入中的字母數大於輸入大小,輸入顯示字符串的開頭。然後當點擊被釋放時,輸入回到焦點,並且脫字符到達字符串的末尾。所以這很難看,因爲我們有這樣的印象:輸入內容閃爍。

theButtonDiv.click(function() { 
    attachedInput.value = idOfAttachedInput.value + theActualKey; 
    attachedInput.focus(); 
}); 

所以我想要防止輸入失去焦點,當我們點擊一​​個鍵盤按鈕。

我該怎麼做?

謝謝。

+1

您可以嘗試使用.setInterval並讓函數將焦點設置爲相關文本框。就設置的容易程度而言,這將是相對無痛的,但我敢打賭,有更簡潔的答案。 – MoarCodePlz

+1

您可能只需要設置光標/插入符號位置而不是聚焦字段。看看這[相關問題](http://stackoverflow.com/questions/499126/jquery-set-cursor-position-in-text-area)。 – hughes

+0

我的解決方案解決了問題嗎? – CaptSaltyJack

回答

-2

我認爲您正在尋找名爲outline的CSS屬性。

#yourinput { 
    outline: none; 
} 

這應該照顧當它有焦點時突出顯示的框。

+1

你的意思是讓這個答案在另一個問題上,或者你誤解了他所問的。 –

4

一種方法是監聽頂級鍵盤節點上的「mousedown」事件,並在事件對象上調用preventDefault

+0

這有效,但請記住,使用此選項時,選擇任何內容不再有效。 – Tom