我正在使用switch-statement在jqPlot jQuery插件上切换模式。
如何将交换机中的值应用到函数参数?
我有
type = detectType(gType);
我需要显示,其中type在下面的参数中。它没有返回该值:
function detectType(value){
switch(value){
case 'bar':
return 'renderer:$.jqplot.BarRenderer,';
break;
case 'pie':
return 'renderer: $.jqplot.PieRenderer,';
break;
}
}
function generateGraph(id,gType) {
type = detectType(gType);
var s1 = [2, 6, 7, 10];
var s2 = [7, 5, 3, 4];
var s3 = [14, 9, 3, 8];
$.jqplot(''+id+'', [s1, s2, s3], {
stackSeries: true,
captureRightClick: true,
seriesDefaults: {
type
rendererOptions: {
barMargin: 30,
highlightMouseDown: true
},
pointLabels: {
show: true
}
},
axes: {
xaxis: {
renderer: $.jqplot.CategoryAxisRenderer
},
yaxis: {
padMin: 0
}
},
legend: {
show: true,
location: 's',
placement: 'outside'
}
});
}
答案 0 :(得分:4)
您无法使用type
字符串执行操作。这是无效的语法。
相反,detectType
应该只返回渲染器对象本身,而不是字符串。然后,将其分配给系列默认值中的renderer
。像这样:
function detectType(value){
switch(value){
case 'bar':
return $.jqplot.BarRenderer;
case 'pie':
return $.jqplot.PieRenderer;
}
}
然后:
//...
seriesDefaults: {
renderer: type
//...
}
//...