2011-12-01 120 views
7

我使用Google Maps API創建可選鄰域列表,並使用Chosen使其看起來不錯。我遇到的問題是Maps API沒有立即獲取數據 - 它通過回調函數執行,這意味着Chosen在添加選項之前應用自己,因此選項無法運行通過選擇(導致他們根本沒有出現)。如何動態更改選定的選擇框?

我認爲在理論上,它應該工作,如果我可以在選擇應用之前獲得選擇中的元素,但我不確定如何完全做到這一點。有什麼想法嗎?

+1

你吃過看看文檔中的部分「更改/更新事件」? – Simon

回答

18

嘗試過什麼文檔建議?

更新獲選動態

如果您需要在您的選擇字段更新選項,並希望選上的 拿起變化,你需要觸發「李斯特:更新」關於 事件領域。 Chosen會根據更新後的 內容重新構建自己。

jQuery Version: $("#form_field").trigger("liszt:updated"); 
Prototype Version: Event.fire($("form_field"), "liszt:updated"); 

或者,如果使用較新的版本:

jQuery Version: $("#form_field").trigger("chosen:updated"); 
Prototype Version: Event.fire($("form_field"), "chosen:updated"); 

http://harvesthq.github.com/chosen/

+0

哦,我也錯過了在文檔中...有時會發生... :) –

+3

現在是:$(「#form_field」)。trigger(「chosen:updated」); –

+0

@DanyMarcoux感謝您的評論,帖子現在已經更新了更新的代碼。 –

4

對於選擇版本< 1.0然後:

$("#form_field").trigger("liszt:updated"); 

對於選擇版本> = 1.0則:

$("#form_field").trigger("chosen:updated");