我结合使用JS淘汰赛与此组合框扩展jQuery的:http://source.dellsala.com/jquery-combobox/demo/jQuery.combobox和淘汰赛JS - 变量选择不点火
我有一个自定义绑定事件,当视图模型初始化:
ko.bindingHandlers.dataOptions = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var id = ko.utils.unwrapObservable(valueAccessor());
var vm = viewModel;
var data = vm.Options();
var objArray = new Array();
$.each(data, function (i) {
var obj = new gv.objectType(data[i].attributeId(), data[i].Name());
objArray.push(obj);
});
var sel = '#' + vm.Id();
$(sel).combobox(objArray);
//$(element) didn't work as a selector.
//Only the actual string selector works: $('#someid')
}
};
对于一些疯狂的原因,我不能为了使用$(元素)或动态选择器(基于变量)来生成组合框:
$(element).combobox(objArray);
然而,如果我直接输入字符串选择器:
$('#myId').combobox(objArray);
它工作正常。同时,任何标准的jQuery方法很好地工作动态选择:
$(element).val('hello world');
所以我觉得这是与组合框插件的问题。事情是,我真的想在查看几个后使用这个特定的组合框插件。
任何想法?谢谢!
解决了它:在应用绑定之前,您无法动态触发某个插件。我已经尝试过更新部分,没有喜悦。上面的答案为我做了。 –