jqPlot弄乱了动态数组

时间:2012-06-15 14:12:14

标签: javascript jquery jqplot

我有一个jqPlot饼图,我通过读取XML文件加载。但是,当我动态加载切片数组时,饼图无法正确呈现,当我对数组进行硬编码时,它似乎正确呈现。

我用来获取数组的代码是:

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

Static Array

1 个答案:

答案 0 :(得分:2)

我找到了答案。当我第二次加载它时,它将嵌入数组中的第二个参数渲染为字符串["PB&J","1"],而jqPlot不喜欢它。因此,在推送整数周围添加一个parseInt()会导致正确的显示。要查看修补程序的演示,请参阅this jsfiddle