как зациклиться внутри скрипта jquery?

Я работаю над сценарием, который берет некоторые записи с сервера и помещает их на временную шкалу. Сценарий временной шкалы использует jQuery, raphael и qtip для создания временной шкалы. Точка на временной шкале показывает событие. эта точка ставится на временной шкале. Поскольку у меня есть некоторые записи, которые представляют собой точки, которые нужно поместить на временную шкалу, я не могу зациклить «даты», сохраняя год, месяц и дату в качестве переменных.

Записи возвращают дату, месяц и год вместе с именем записи.

Это исходный код:

$(document).ready(function(){

      var events = [
      {dates: [new Date(2012, 4, 5)], title: "some name", section: 0}
      ];

      var timeline1 = new Chronoline(document.getElementById("target1"), events,
        {animated: true,
         tooltips: true,
         defaultStartDate: new Date(2012, 3, 5),
         sections: sections,
         sectionLabelAttrs: {'fill': '#997e3d', 'font-weight': 'bold'},
          draggable: true
      });

});

Так что я подумал об этом:

$(document).ready(function(){

  var events = [

  for (var i = 0; i < totalrecordsretreived; i++)
  {
     var x,y,z, recname;

     recname = retrievedrecord[i].name;
     x = retrievedrecord[i].day;
     y = retrievedrecord[i].month;
     z = retrievedrecord[i].year;

    //code for putting record into x,y,z and recname

    {dates: [new Date(z, y, x)], title: recname, section: 0} // creates the dot.
  }

  ];

  var timeline1 = new Chronoline(document.getElementById("target1"), events,
    {animated: true,
     tooltips: true,
     defaultStartDate: new Date(2012, 3, 5),
     sections: sections,
     sectionLabelAttrs: {'fill': '#997e3d', 'font-weight': 'bold'},
      draggable: true
  });
});

Любые идеи?


person Community    schedule 19.10.2013    source источник
comment
Вы используете stoicloofah.github.io/chronoline.js для Chronoline? Также не совсем понятно, о чем ваш вопрос.   -  person Zlatin Zlatev    schedule 19.10.2013
comment
@ZlatinZlatev - Да, я использую chronoline.js. Я пытаюсь нанести много точек [событий] на временную шкалу. Чтобы сделать несколько точек на временной шкале, я хотел использовать цикл. Этот цикл берет одну запись за раз и помещает ее в события -> даты: [новая дата (z, y, x)]...   -  person    schedule 19.10.2013


Ответы (1)


Ага, понятно...

Измените свой код на:

  var events = [];

  for (var i = 0; i < totalrecordsretreived; i++)
  {
     var x,y,z, recname;

     recname = retrievedrecord[i].name;
     x = retrievedrecord[i].day;
     y = retrievedrecord[i].month;
     z = retrievedrecord[i].year;

    //code for putting record into x,y,z and recname

    events.push({dates: [new Date(z, y, x)], title: recname, section: 0}); // creates the dot.
  }

По сути, приведенный выше код создает пустой массив событий. А затем используйте метод push класса Array, чтобы заполнить его. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push

Позвольте мне знать, если это помогает.

person Zlatin Zlatev    schedule 19.10.2013
comment
Хорошо, не могли бы вы проверить значение массива событий после цикла? Например, вы можете использовать console.log(JSON.stringify(events)) сразу после цикла. - person Zlatin Zlatev; 21.10.2013