Ajax结果和动态Div上的Highcharts Error 13

时间:2017-08-22 14:13:48

标签: jquery ajax highcharts

我试图找到解决方案,解释为什么我的代码无法与Highcharts一起使用。以下代码导致错误#13,找不到元素。

我正在从Ajax结果返回数据时创建元素<div id="_CPID_Chart_' + cpid +'"></div>并将其附加到td。

我知道这有一个简单的答案,但我一直在寻找答案,但没有任何结果。

request.done(function(data) { 
            ajaxData = data;
            $(function() {
                $('tr#_CPID_' + cpid + ' td').html(''+
'                   <div class="row">'+
'                       <div class="col-8">'+
'                           <div class="contentDiv">'+
'                               <div><p>Cross Project ID:</p>'+ ajaxData['details']['cpid'] + '</div>'+
'                               <div><p>Also Known As:</p>' + ajaxData['details']['name'] + '</div>'+
'                           </div>'+
'                       </div>'+
'                       <div class="col-8"><div id="_CPID_Chart_' + cpid + '" style="height: 400px; min-width: 310px;"></div>'+
'                   </div>'+
'               ');
                Highcharts.stockChart('#_CPID_Chart_' + cpid, {
                    rangeSelector: { selected: 1 },
                    title: { text: 'CPID Chart for ' + cpid },
                    series: [{ name: cpid, data: ajaxData['magnitude'], tooltip: { valueDecimals: 8 } }]
                });
            });
        });

我还测试了div实际存在并使用以下代码$('#_CPID_Chart_' + cpid).html('Test');而不是Highcharts.stockChart代码,它没有任何问题。

我认为我错过了有关Highcharts如何呈现其数据的信息。

1 个答案:

答案 0 :(得分:1)

您收到错误#13(https://www.highcharts.com/errors/13),因为您使用Highcharts.stockChart('_CPID_Chart_' + cpid, {...});而不是Highcharts.stockChart('#_CPID_Chart_' + cpid, {...});。检查下面的更正演示。

例:
http://jsfiddle.net/ueaguauh/