微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jQuery FullCalendar事件排序

我有很多活动都是全天活动,而且都是在同一时间开始的.我按照我希望它们出现在完整日历视图中的顺序创建事件,但它们似乎总是以其他方式排序.

如何按字母或按ID排序事件?

编辑:添加示例数据数组.在日历中,我预计Supervisor事件将每天首先出现,按照字母顺序出现在Tech1和Tech2之前,其id是出租人数,也是以下事件.相反,我每天都会收到随机订单.

例如:

2011-11-05的一天,该订单显示为Tech2,Tech1,Tech2,Supervisor.

2011-11-06的一天,该订单显示为Supervisor,Tech2.

我要求排序至少每天都是一致的,理想情况是按标题的字母顺序排列,或者按照id的顺序排列.

var events=[
    {id:1,title:'Supervisor',start:'2011-11-05T00:00:00-05:00',st_hours:10,ot_hours:0,allDay:true},{id:2,title:'Tech2',{id:3,{id:4,title:'Tech1',{id:5,{id:6,{id:7,start:'2011-11-06T00:00:00-05:00',{id:8,{id:9,{id:10,{id:11,{id:12,allDay:true}
];

EDIT2:此问题似乎只存在于Google Chrome中.事件按照我期望的顺序呈现在IE9和FF8中.我开发的Chrome 15似乎是唯一受影响的浏览器.

火狐

解决方法

我发现chrome尊重开始时间.在构建事件时,我只需在列表中的每个项目中添加第二个.在示例中,我有一个结果集,其中包含列中特定日期的每个值. Start位于第0列,title位于结果集的第1列.

在我的示例中,我执行以下操作:

var startVal = "";
$.each(data.ResultSet,function(row)
title = data.ResultSet[row][1];
startVal = new Date(data.ResultSet[row][0]);
startVal.setSeconds(startVal.getSeconds() + row);
start: startVal;

这样我就按照我放入事件对象的顺序显示标题.

在您的数据示例中,我将进行以下更改:

var events=[
{id:1,start:'2011-11-05T00:00:01-05:00',start:'2011-11-05T00:00:02-05:00',start:'2011-11-05T00:00:03-05:00',start:'2011-11-05T00:00:04-05:00',start:'2011-11-05T00:00:05-05:00',start:'2011-11-05T00:00:06-05:00',start:'2011-11-06T00:00:07-05:00',start:'2011-11-06T00:00:08-05:00',start:'2011-11-06T00:00:09-05:00',start:'2011-11-06T00:00:10-05:00',start:'2011-11-06T00:00:11-05:00',start:'2011-11-06T00:00:12-05:00',allDay:true}];

希望这可以帮助!

原文地址:https://www.jb51.cc/jquery/177375.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐