与继承的对象paramater
我使用jQuery的1.9.0和jQuery-UI-1.10.0与继承的对象paramater
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
);
我试图建立两个单独的参数列出了我的jQuery的自动完成自动完成。这些对象似乎构造正确,但自动完成似乎并不能识别我对继承对象中的select的定义。
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
方法循环找不到select
属性,因为它没有被标记为enumerable
所以这就是为什么它是从内部无法访问autocomplete
。
我似乎无法得到这个工作。这对我来说似乎是正确的,但它不工作,有什么想法?我该如何解决这个问题。非常感谢您的帮助! – Jonathan 2013-02-14 09:56:07
给我几分钟发布你的jsfiddle例子。 – 2013-02-14 10:00:37
这里是示例http://jsfiddle.net/EBduF/308/ – 2013-02-14 10:31:08
它看起来非常奇怪。如果你添加选择方法:optsA .__ proto__它的作品,但如果你将它添加到对象,它不会... – 2013-02-13 17:06:25
我在想你所发布的绑定选项可能是一个更好的方法来解决这个问题,而不是尝试使用经典的OO概念。 – Jonathan 2013-02-13 17:10:56
显然我只是分享一点我的代码,这实际上是一个更大的参数列表,因此我自己的模块化的坚持。 – Jonathan 2013-02-13 17:17:08