如何动态改变Chosen选择框?

7
我正在使用Google Maps API创建可选择的社区列表,并使用Chosen使其看起来很好。我遇到的问题是Maps API不会立即获取数据-它通过回调函数进行,这意味着在选项添加之前Chosen就已经应用了自己,结果选项没有经过Chosen(导致它们根本不显示)。
我认为理论上,如果我能在应用Chosen之前获取选择中的元素,那么它应该会起作用,但我不确定如何确切地做到这一点。你有什么想法吗?

1
你看过文档中“更改/更新事件”部分了吗? - Simon
2个回答

19

您是否尝试过文档上建议的方法?

动态更新Chosen

如果您需要在选择字段中更新选项,并希望Chosen能够检测到这些更改,您需要在该字段上触发"liszt:updated"事件。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/


哦,我在文档中也错过了那个...有时候会发生这种情况... :) - Sandeepan Nath
@DanyMarcoux 感谢您的评论,帖子现已更新为最新代码。 - Christian

4

对于所选版本 < 1.0:

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

对于所选版本 >= 1.0,则:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接