1

我正在尝试在 IE9 中运行这个 Highcharts 示例

http://www.highcharts.com/studies/live-server.htm

但我没有调用 php 脚本,而是执行以下操作:

function requestData() {            
        var MyAppUrlSettings = {
            MyUsefulUrl: '/PaymentConfirmation/UpdateChart?numSecondsToGoBack=3600'
        }

        $.ajax({
            url: MyAppUrlSettings.MyUsefulUrl,
            type: "POST",
            async: false,
            dataType: "json",
            success: function (PaymentConfirmationData) {
                $.each(PaymentConfirmationData, function (i, PaymentConfirmation) {

                    var d = new Date(); 
                    d.setTime(parseInt(PaymentConfirmation.TimeMilliSeconds));                            
                    var milli = d.getTime();
                    var series = chart.series[0],
                 shift = series.data.length > 20; // shift if the series is longer than 20
                    // add the point
                    chart.series[0].addPoint([milli, PaymentConfirmation.Count], true, shift);

                    // call it again after one second
                    setTimeout(requestData, 1000);
                });
            },
            error: function (xhr, status, error) {
                alert("An AJAX error occured: " + status + "\nError: " + error);
            },
            cache: false
        });
    }

现在就像在示例中一样,图表对象是全局声明的(我认为这在某种程度上不起作用!!!)

注意:“$(document).ready(function() {”函数与示例中的一样。

请提前提供帮助和感谢。

4

1 回答 1

0

没有看到这里的实际图表代码是我最好的猜测。您没有正确定义您的系列对象。这条线是我认为的问题:

var series = chart.series[0],

我认为应该是 a;而不是 a ,

此外,如果您仍然收到此错误,那么您创建了一个chart没有series但然后尝试将一个点推送到 a series[0]。确保创建一个空系列(或创建serieschart创建)。就像给出的示例页面一样:

series: [{
     name: 'Random data',
     data: []
   }]
于 2012-12-04T17:05:46.087 回答