0

我正在编写一个脚本,该脚本从服务器获取一些记录并将其放在时间线上。时间线脚本使用 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
  });
});

有任何想法吗?

4

1 回答 1

0

我懂了...

将您的代码更改为:

  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.
  }

基本上,上面的代码所做的是创建一个空的 Array 事件。然后利用 Array 类的 push 方法来填充它。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push

让我知道这是否有帮助。

于 2013-10-19T12:17:29.717 回答