2012-02-03 60 views
2

我试图使用dropkick.js在Web应用程序中构建下拉菜单。我喜欢dropkick.js,因为它支持键盘和很好的定制主题功能。但是,它似乎只适用于静态菜单;当我动态更新原始元素(使用knockout.js绑定)时,dropkick.js菜单不会更新。如何动态更新dropkick.js下拉菜单中的选项?

为了澄清,问题在于,以编程方式更改selectedChannel(或通道列表本身)的值不会导致更新下拉列表。另一种方式确实有效(点击下拉菜单,查看selectedChannel变量更新)。

可以通过修改dropkick.js(或者使用自定义的knockout.js绑定?)来获得解决这个问题的现有解决方案的链接,或者指导如何解决这个问题。或者,也许它可以/应该工作,但我做错了什么?

结合使用knockout.js:

<select id="channelSelector" data-bind="options: channels, optionsText: 'name', optionsValue: 'id', value: selectedChannel"></select> 

设置代码:

$('#channelSelector').dropkick(); 

更新代码使用knockout.js这确实原因下拉列表来更新其选择的值:

vm.selectedChannel(vm.channels()[0].id); 

问题示例:http://jsfiddle.net/37QvY/

+0

宽度问题呢? http://stackoverflow.com/questions/11769888/how-to-individually-target-multiple-dropdowns-in-css-for-dropkick-plug-in – user1318135 2012-08-02 23:07:48

回答

1

我已经为你一个可行的脚本关于selectedChannel

http://jsfiddle.net/helk/AFtSS/1/

干杯更新!

+0

谢谢你的努力!不幸的是,这是另一个方向不起作用:更改变量,请参阅UI更新。这是一个更新的小提琴来演示问题。 [http://jsfiddle.net/37QvY/](http://jsfiddle.net/37QvY/) – OfficerJoe 2012-02-04 01:28:33