2011-09-01 100 views
0

打開我有一個快速變化的集合可能顯示爲選擇框的選擇項的系統的點中選擇元素。每次數據更改時,我都可以直接更新選項,但我寧願在用戶即將看到它們時填寫選項。例如。當它即將開放時。有這個事件嗎?添加選項,它是關於在JavaScript

我想我可以使用'click'或'mousedown'事件,但通過鍵盤導航呢?可能還有其他的情況(也許)

順便說一句,我知道如何添加選項到一個選擇,'開幕'事件真的是我後。

感謝, 本

回答

1

使用focus()而不是click(),因爲點擊事件沒有給予足夠的時間用新的值填充下拉菜單,這會導致古怪的行爲。此外,單擊事件將只捕獲鼠標點擊,焦點()您可以同時獲得鼠標和鍵盤焦點事件,並且可以爲下拉菜單填充新數據提供足夠的時間。這裏有一個簡單的實驗fiddle,一次嘗試一個函數來看看不同之處。

+0

謝謝。這似乎工作,但它會重置每次單擊選擇時的選擇。我想這可以通過確保在填充html()時正確設置select屬性來解決。 –

+0

我現在在我的應用程序中使用了這個建議,它似乎很好,所以謝謝! –

2

你有兩個選擇:click()focus()沒有其他人。

+0

這兩個都不會打開一個選擇框:http://jsfiddle.net/vMTRk/ – Joe

+0

不,他們不會打開它,但它們是捕獲事件以填充內容的有效方式,在它打開之前,這是OP想要的。 –

1

如果你正在做這樣的事情,選擇下拉可能心不是將要選擇的UI元素。

我會建議更改爲一個jQuery UI自動完成構件;那麼您可以根據用戶輸入的查詢簡單地提供項目。

此外,您可以連接到keyup事件(或焦點事件),而在這一點上顯示出一組項目(好像是點擊「下拉」)http://jqueryui.com/demos/autocomplete/#maxheight

+0

AutoComplete是一個很好的控制,但我真的想要一個下拉式,無需打字。雖然謝謝! –

相關問題