我正在使用jquery-1.9.0和jquery-ui-1.10.0
var opts = {
source: availableTags
};
var optsA = Object.create(opts,
{
select: {
value: function (event, ui) {}
}
});
var optsB = Object.create(opts,
{
select: {
value: function (event, ui) {}
}
});
$("#tags1").autocomplete(
optsB
);
$("#tags2").autocomplete(
optsA
);
我正在尝试为自动复合构建两个单独的参数列表。这些对象似乎构造正确,但自动完成似乎并不能识别我对继承对象中的select的定义。
答案 0 :(得分:1)
Object.create
调用中缺少属性。
您应该添加enumerable: true
var opts = {
source: availableTags
};
var optsA = Object.create(opts,
{
select: {
value: function (event, ui) {},
enumerable: true
}
});
var optsB = Object.create(opts,
{
select: {
value: function (event, ui) {},
enumerable: true
}
});
$("#tags1").autocomplete(
optsB
);
$("#tags2").autocomplete(
optsA
);
问题是jQuery的核心extend
方法中的for循环找不到select
属性,因为它没有标记为enumerable
所以这就是为什么它不能从内部访问autocomplete
。
<强> JSFiddle 强>