2015-09-07 2 views
1

Я просто хочу изменить серию данных в высоких диаграммах с помощью вызова функции. Но, похоже, я не могу получить к нему доступ. Я получаю, что «серия» не определена. Я также попытался использовать что-то похожее, как метод «click-click» (http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/members/series-addpoint-append/) безуспешно.Highchart, редактировать данные из вызова функции с аргументами

Любая помощь высоко оценили BR Кристиана

var mainchart; 
function addGraphData(a) { 
    mainchart.series[0].addPoint(a); 
} 
$(function() { 
    $('#container').highcharts({ 
    chart: { 
     defaultSeriesType: 'line', 
     events: { 
     load : function() { 
      mainchart = this; // `this` is the reference to the chart 
     } 
     } 
    }, 
    title: { 
     text: 'Kobber (KJ-040)' 
    }, 
    xAxis: { 
     text: 'Dato' 
    }, 
    yAxis: { 
     title: { 
     text: 'Resultater' 
     } 
    }, 
    series: [{ 
     //name: 'Metall data', 
     data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4] 
    }] 
    }); 
}) 

$(function() { 
 
    $('#container').highcharts({ 
 

 
     series: [{ 
 
      data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4] 
 
     }] 
 

 
    }); 
 

 

 
    // the button action 
 
    var i = 0; 
 
    $('#button').click(function() { 
 
     var chart = $('#container').highcharts(); 
 
     chart.series[0].addPoint(50 * (i % 3)); 
 
     i += 1; 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
 
<script src="http://code.highcharts.com/highcharts.js"></script> 
 

 
<div id="container" style="height: 400px"></div> 
 
<button id="button" class="autocompare">Add point</button>

+1

Где вы звоните ваш addGraphData) 'функцию' (? – Kabulan0lak

+0

Im фактически сначала вызывает функцию createGraph() при загрузке окна, а затем im вызывает addGraphData(). Я хочу назвать эту функцию глобально в некоторых специальных событиях. Как я могу это сделать? Имейте в виду, что im полностью neewbie в jquery. – KB87

+0

Просто вызовите createGraph(), а затем вызовите addGraphData() для каждой точки, которую вы хотите добавить. Я действительно не понимаю вашу проблему. – Kabulan0lak

ответ

0

Я думаю, что вы просто не вызывая функцию, которую вы определили. Я взял ваш код и сделал JSFiddle, и он работает. Я просто добавил:

$('#button').click(function() {   
    addGraphData(Math.random()*100); 
}); 

Смотрите рабочую JSFiddle здесь: http://jsfiddle.net/Lfnbapn7/2/

+0

Итак, проблема в том, где им вызов функции? Я хочу вызвать функцию addGraphData() глобально, независимо от кнопок или щелчков мышью? Как я могу это сделать? – KB87

+0

Не понимаю. Сколько очков вы хотите добавить? Если только один, то вы можете называть 'addGraphData (150)' например. – Kabulan0lak

+0

Мне жаль, если им непонятно. Я просто хочу иметь возможность редактировать диаграмму динамически из любого места, используя функцию-вызов, например, если у меня есть два поля ввода, которые получают их значения в «правильном диапазоне». Затем я хочу добавить значение к диаграмме? – KB87

Смежные вопросы