1

XMLファイルを読み取って読み込んでいるjqPlot円グラフがあります。ただし、スライスの配列を動的にロードすると、円グラフは正しくレンダリングされません。配列をハードコーディングすると、正しくレンダリングされるように見えます。

配列を取得するために使用するコードは次のとおりです。

function loadSlices(xml)
{
slices = new Array();
$(xml).find("category").each(
    function()
    {
        $(this).find("slice").each(
            function()
            {
                slice = new Array($(this).attr("name"));
                slice.push($(this).attr("size"));
                slices.push(slice);
            }
        );
    }
);
return slices;
 }

チャートをロードするコードは次のとおりです。

function pieChart(name,xmlurl)
{
$.get(xmlurl,function(xml)
{

    loadSize(name,xml);
    slices= new Array();
    slices.push(loadSlices(xml));
    $("#debug").append("\nSLICES ARR (getting ready to load):");
    debug2dArray(slices);
    //debug2dArray(slices)
    //now load in the pie chart
    var plot1 = $.jqplot(name,[slices],
        {
            seriesDefaults:{
                renderer: $.jqplot.PieRenderer,
                rendererOptions:{
                    showDataLables: true
                },
            }
    });
});//end get AJAX request
 }

スライス配列をハードコーディングすると、[[["PB&J",2],["Ham",1]]]完全に正常に機能します。どんな助けでもいただければ幸いです。

更新

XML

<chart>
    <size width="450px" height="200px"/>
        <category>
              <slice name="PB&J" size="3" />
              <slice name="Ham"  size="1" />
         </category>
 </chart>

JSFiddles

静的配列

4

1 に答える 1

2

私は答えを見つけました。2回目にロードしたとき、埋め込み配列の2番目の引数を文字列としてレンダリングしていたので["PB&J","1"]、jqPlotはこれを好みませんでした。したがって、整数のプッシュの前後にparseInt()を追加すると、正しい表示になりました。修正のデモを見るには、このjsfiddleを参照してください。

于 2012-06-15T15:27:38.707 に答える