gpt4 book ai didi

javascript - highcharts 使用 addSeries 动态添加系列

转载 作者:行者123 更新时间:2023-11-28 02:31:33 24 4
gpt4 key购买 nike

我正在创建一个动态创建的图表,如果没有,则添加一个系列,如果有,则添加一个点。我收到未捕获的类型错误:无法调用未定义的方法“addSeries”。我环顾四周,找不到为什么它说该方法未定义。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script type="text/javascript" src="highcharts.js"></script>
$(document).ready(function () {

var chart1 = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'column',
events: {
load: requestData
}
},
title: {
text: 'Survey Chart'

},
xAxis: {
categories: [],
title: {
text: 'Question Number'
}

},
yAxis: {
title: {
text: 'Total Answered'
}
},
legend: {
layout: 'vertical',
align: 'left',
verticalAlign: 'top',
x: 100,
y: 70,
floating: true
},
series: []
});

文档准备功能占据整个脚本,我有以下功能

    function requestData() {
ajaxCall(chartCreate, createSeries, "services/Survey.svc/DoWork", "{}");
chart1.redraw();
};


function chartCreate(point) {
var temp;
temp = $.parseJSON(point.d);
$.each(temp, function (key, p) {
var seriesObj;
seriesObj = seriesExists(p.mcAnswer);
if (seriesObj.status == false) {
chart1.addSeries({name: '' + p.mcAnswer + '', data: [] });
chart1.series[seriesObj.count].addPoint(p.total, false);
} else {
chart1.series[seriesObj.count].addPoint(p.total, false);
}
});
};

//loops through all the series to see if the series exists.
//if true returns index and true if not just returns false
function seriesExists(name) {
var ct = 0;
//var len = chart1.series.length;
var len = 0;
if (len > 0) {
$.each(chart1.series, function (count, curSeries) {
if (curSeries.name == name) {
return { 'count': count, 'status': true };
}
ct = count;
});
}
return { 'count': ct, 'status': false };
}; function createSeries() {
alert("error");
};

//$.ajaxCall({successFun: function, errorFun: function, source: "", data: {}});
function ajaxCall(myFunSuccess, myFunError, url, data) {
//chart1 = chartTemp;
$.ajax({
type: "POST",
async: false,
url: url,
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: myFunSuccess,
error: myFunError
});
//return chart1;
};

我能够使用ajax函数调用,但当我到达chartCreate时遇到问题。

最佳答案

问题是您尝试在 chart1 获取图表引用之前添加系列。这就是为什么 chart1 没有 addSeries 方法。

您可以看到这个问题here .

要修复此问题,您可以在调用 requestData 之前手动设置对 chart1 的图表引用。
就像下面这样。

load: function() {
chart1 = this; // `this` is the reference to the chart
requestData();
}

关于javascript - highcharts 使用 addSeries 动态添加系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14074435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com