我有以下javascript:
if(i==1&&$('#ln').val()=='true')
ops={
xaxis: {show:false},
yaxis: {show:false,
transform: function (v) { return -v; },
inverseTransform: function (v) { return -v; }}}
else ops={xaxis: {show:false}, yaxis: {show:false}};
$.plot($(gr), pdat,ops);
当我尝试创建ops
字符串时,我在解析它时遇到错误。我想这是因为功能。
如何组合选项以便根据不同的条件添加其他选项?在示例中,我们的想法是避免重复xaxis: {show:false}, yaxis: {show:false}
答案 0 :(得分:3)
您可以使用公共属性填充ops
对象,然后在if语句中添加其他对象:
// initalize ops with common properties
var ops = {
xaxis: {show: false},
yaxis: {show: false}
};
if (i == 1 && $('#ln').val() == 'true') {
ops.yaxis.transform = function (v) { return -v; };
ops.yaxis.inverseTransform = function (v) { return -v; };
}
$.plot($(gr), pdat, ops);
答案 1 :(得分:2)
如果你有一个更复杂的场景,我建议使用jquery的extend方法:
var ops = {
xaxis: {show: false},
yaxis: {show: false}
};
if (i == 1 && $('#ln').val() == 'true') {
$.extend(true, ops, {
yaxis: {
transform: function (v) { return -v; },
inverseTransform: function (v) { return -v; }
}
});
}
Ops现在是:
{
"xaxis":{
"show":false
},
"yaxis":{
"show":false,
"transform": function (v) { return -v; },
"inverseTransform": function (v) { return -v; }
}
}