Как сделать несколько графиков, используя высокие графики в цикле?

Это соответствующий код у меня есть:

        <script>
titles = <?php echo json_encode($graphTitles)?>;
//Loop through the graphs
for (var graphNO = 0; graphNO < titles.length; graphNO++)
{
//CREATE NEW CONTAINER
var container = document.createElement('div');
document.body.appendChild(container);er);

dates = <?php echo json_encode($recivedDates);?>[titles[graphNO]];
//I EXTRACT A FEW  MORE ARRAYS THE SAME METHOD
$(function ()
{
$(container).highcharts({
title: {
text: titles[graphNO]
},
xAxis: {
categories: dates
},
series: [{
type: 'column',
color: 'gold',
name: 'Created Issues',
data: createdIssues.map(Number)
},
//MORE COLUMN'S AND SOME SPLINES. IT ALL WORKS AS EXPECTED
});
});
}
</script>

Я не хотел публиковать весь код и просто запутать его, я ожидал, что этот код сделает:

graphNO имеет значение 2, я думал, что он будет проходить дважды (что он делает), создавать контейнер для каждого цикла (что он делает), а затем рисовать другой график для каждого цикла, который он делает в контейнере, который он только что сделал (но вместо этого он просто рисует второй график).

Я не знаю, что не так, но любые идеи о том, как это исправить, или любые идеи о том, как сделать несколько графиков в цикле, были бы очень полезны.

Кроме того, это первый сайт, который я создаю, поэтому я не использовал javascript, php или html более суток, поэтому извините, если это действительно очевидно, но я ничего не смог найти по этому поводу.

0

Решение

Я понял, что после дня, когда я пробовал сложные вещи из интернета, которые не работали, я подумал, что произойдет, если я удалю функцию, а не тогда:

             $(function ()
{
$(container).highcharts({
title: {

Я просто:

              $(container).highcharts({
title: {

И все это работало отлично. Я не знаю, почему, вероятно, из-за того, как jquery работает с функциями, я не знаю, я даже не знал, что я использовал, было jquery до часа назад. Но это работает, если кто-то хочет сделать что-то подобное, это работает, и не стесняйтесь сказать мне, почему.

2

Другие решения

Ответ от Swikrit Khanal действительно работает, потому что функция больше не перезаписывается. Когда вы все обернули в функцию, эта функция перезапишет себя при построении следующего графика, так что вы останетесь только с последним графиком.

Сильфон — это способ использовать цикл и построить несколько графиков, не удаляя функцию, а однозначно назовите ее.

for(v=0; v < 5; v++){
var container = "#container"+v;
var func_name = "container"+v;
func_name = function () {
$(container).highcharts({
})
}
func_name()
}
1

По вопросам рекламы [email protected]