我希望jquery ui widget选项默认为字符串,但我希望它能够被一个对象覆盖。当我这样做时,我实际上以一种奇怪的方式将字符串转换为对象,然后使用我传入的任何对象进行扩展。
$.widget("ui.test", {
options: {
anOption: "a,b,c"
},
_create: function() {
console.log(this.options);
}
});
$('div').test({
anOption: {
a: 'A'
}
});
如果我跳过向窗口小部件传递选项,它将在_create方法中作为字符串接收。如果我传入一个对象,就会发生奇怪的行为。在chromes js console log中我得到了这个,这不是我想要的。
Object
anOption: Object
0: "a"
1: ","
2: "b"
3: ","
4: "c"
a: "A"
我该如何解决这个问题?
jsfiddle:http://jsfiddle.net/MatteS75/s9wK2/
答案 0 :(得分:1)
如果在创建窗口小部件后更改选项,它将使用所需的对象覆盖该选项。这可以接受吗?
$.widget("ui.test", {
options: {
anOption: "a string"
},
_create: function() {
console.log(this.options.anOption);
}
});
$('div').test({});
$('div').test("option", "anOption", {
a: "option1",
b: "option2"
});
var anOption = $('div').test("option", "anOption");
console.log(anOption);
答案 1 :(得分:0)