【发布时间】:2011-12-31 14:19:29
【问题描述】:
我将 Knockout JS 与 jQuery 的组合框扩展结合使用:http://source.dellsala.com/jquery-combobox/demo/
视图模型初始化时我有一个自定义绑定事件:
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) 或动态选择器(基于变量)来生成组合框:
$(element).combobox(objArray);
但是,如果我直接输入字符串选择器:
$('#myId').combobox(objArray);
它工作正常。任何标准的 jQuery 方法也适用于动态选择器:
$(element).val('hello world');
所以我认为这是组合框插件的问题。问题是,在查看了几个之后,我真的很想使用这个特定的组合框插件。
有什么想法吗?谢谢!
【问题讨论】:
标签: jquery json knockout.js