0

私はswitchステートメントを使用してjqPlotjQueryプラグインのモードを切り替えています。

スイッチからの値を関数パラメーターに適用するにはどうすればよいですか?

私は持っています

type = detectType(gType);

タイプが以下のパラメーターにある場合、これを表示する必要があります。その値は返されません。

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'
        }
    });
}
4

1 に答える 1

4

type文字列でやろうとしていることはできません。構文が無効です。

代わりにdetectType、文字列としてではなく、レンダラーオブジェクト自体を返す必要があります。renderer次に、それをシリーズのデフォルトに割り当てます。そのようです:

function detectType(value){
    switch(value){
        case 'bar':
            return $.jqplot.BarRenderer;

        case 'pie':
            return $.jqplot.PieRenderer;
    }
}

それで:

//...
seriesDefaults: {
    renderer: type
    //...
}
//...
于 2012-04-05T18:54:41.220 に答える