0

我正在使用 Chap Links Timeline Library http://almende.github.io/chap-links-library/js/timeline/doc/并发现它非常有用。但是我需要按特殊顺序堆叠事件。

到目前为止,我尝试使用 customStackOrder() 函数但没有成功。如何访问此函数中的自定义数据字段?

我的数据元素如下所示:

data.push({
  start: new Date( msg.timestamp ),  
  content: msg.text,
  stackOrder: msg.level
});

function customStackOrder(A,B) {
  return A.stackOrder - B.stackOrder
}

但是 A.stackOrder 和 B.stackOrder 是未定义的。

4

1 回答 1

0

如何访问此函数中的自定义数据字段?

时间轴确实忽略了自定义字段,并且没有简单的方法可以访问它们。函数中可用的项目属性customStackOrder是实际位置和大小(leftrightwidthheight)和时间戳(start以及可选end的 )。

如果你真的想这样做,你将不得不应用低效的 hack。这不是官方支持的,我不推荐它:

  • 从传递给排序函数的项目中,您必须确定它们的表索引:var indexA = mytimeline.items.indexOf(itemA)
  • 从您的原始数据表中读取该项目的数据:var dataA = data[indexA]
  • 从这里读取您的自定义字段:var stackOrderA = dataA.stackOrder

编辑:

另一个技巧可能是:如果你不使用 field className,你可能会滥用它来保存你的stackOrderfield 的值。只要确保这些值不会与某些实际的 css 冲突。

于 2014-04-28T07:59:15.883 回答