我正在构建一个与Facebook时间轴功能非常相似的HTML列表。该列表最多可以获得100个项目,因此不需要执行。
与Facebook的时间表不同,我的列表非常有活力。例如,不同的事件是实时到达的,并且取决于时间戳,可能会被添加到列表中,插入(我无法保证新事件必然按时间顺序到达)甚至被删除。最重要的是,动画更新列表(添加/输入/删除)也会很不错,但这是一个单独的问题。
我想知道,一旦我用初始数据建立起来,维护列表的最佳策略(按时间排序)是什么?
感谢。
答案 0 :(得分:2)
如其他答案所示,每个元素都有data-time
属性。当新数据到达时,找到data().time
小于新时间的第一个元素。如果有这样的元素,请使用element.before(newElement)
,否则使用container.append(newElement)
。这样,列表将保持排序。
答案 1 :(得分:0)
here有一个很好的jquery函数。您可以在html元素上实现数据属性:
<div data-time="1203812823873"></div>
然后你可以像这样调用这个函数:
$(".elements").sortElements(function(aElement0, aElement1) {
return aElement0.data("time") - aElement1.data("time");
})