Как динамически загружать старшие чарты - PullRequest
3 голосов
/ 02 февраля 2012

Я пытаюсь загружать старшие графики динамически, как показано в приведенном ниже коде: он не может распознать переменную старших графиков.Если я загружаю старшие графики статическими средствами, это работает.Пожалуйста, помогите.

Я использую jquery версии 4 и highcharts последнюю версию 1.0

<html>
<head>
//loading jquery
<script src="js/libs/jquery-1.4.2.js" type="text/javascript"></script>
<script type="text/javascript">
var chart1;

$(document).ready(function() {
$.getScript('js/libs/highcharts.src.js', function() {

            });


  chart1 = new Highcharts.Chart({
         chart: {
            renderTo: 'chart1',
            type: 'bar'
         },
         title: {
            text: 'Fruit Consumption'
         },
         xAxis: {
            categories: ['Apples', 'Bananas', 'Oranges']
         },
         yAxis: {
            title: {
               text: 'Fruit eaten'
            }
         },
         series: [{
            name: 'Jane',
            data: [1, 0, 4]
         }, {
            name: 'John',
            data: [5, 7, 3]
         }]
      });
   });


</script>


</head>

<body>
<div id="chart1"></div>

</div>
</body>
</html>

1 Ответ

11 голосов
/ 02 февраля 2012

$.getScript() - это асинхронная операция, означающая, что она будет извлекать сценарий, но не будет ждать его выполнения перед обработкой остальной части кода.Поэтому вам нужно подождать какое-то указание на то, что код был получен.Если вы посмотрите на документы , вы заметите, что $.getScript() имеет функцию обратного вызова успешно только для этой цели.На самом деле, у вас уже есть пустая функция успеха в вашем коде, просто переместите туда объявление Highcharts.Другими словами, сделайте это:

$(document).ready(function() {
    $.getScript('js/libs/highcharts.src.js', function() {
        chart1 = new Highcharts.Chart({
            // Highcharts options
        });
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...