有人能帮我了解如何将开始日期输入日历吗。我已经创建了一个Delivery Scheduler日历,并通过数据库在日历下的一个表中显示交付详细信息。这要求我在用户选择日历日加载表信息时刷新页面。我可以想出如何在传入页面的开始日期开始日历。
看起来这很容易,但我做错了什么。
$('#calendar').fullCalendar(选项);$('#calendar').fullCalendar('gotoDate','2012-10-21');
基于文档的示例http://arshaw.com/fullcalendar/docs/current_date/gotoDate/
记住,月份是0,所以10意味着11月。
$(document).ready(function () {
var calendar = $('#calendar').fullCalendar({
events:[
{ title:'All Day Event', start:new Date(2012, 10, 20)},
{ title:'Long Event', start:new Date(2012, 10, 21), end:new Date(2012, 10, 22)}
]
});
$('#calendar').fullCalendar('gotoDate', 2012, 10, 21);
});
感谢Biesior的帮助。我能够使用你建议的代码来获得我想要的行为。
在使用上面的方法时,我注意到Firebug的控制台显示了两个同时执行的AJAX数据请求,一个用于与当前日期关联的视图,另一个用于和指定的gotoDate关联的视图。
从用户的角度来看,似乎没有任何额外的延迟,日历从一开始就显示请求的视图。然而,"加载"回调将被多次调用,这在某些情况下可能会导致奇怪的行为。还可能存在与当前日期的多余AJAX请求相关联的其他不希望的结果。
我能够避免不必要的AJAX请求,方法是在没有事件源的情况下初始化日历,然后移动到上面Biesior所示的所需日期,然后添加事件源。顺序如下所示为了简洁起见,我删除了一些不相关的FullCalendar选项和回调。还有一些额外的AJAX参数和一些PHP,但需要注意的是,当指定了事件源时
原始代码导致两个同时的AJAX请求:
$('#calendar').fullCalendar({
events: {
url:'/Services/GetEvents.php',
type: 'POST',
data: {
lat: <?=$venLatitude?>,
lon: <?=$venLongitude?>,
userID: <?=$userID?>,
distance: <?=$distance?>
}
}
})
$('#calendar').fullCalendar('gotoDate', <?=(int)substr($startDate,0,4)?>, <?=((int)substr($startDate,5,2))-1?>);
此调整只会导致所需的AJAX请求:
$('#calendar').fullCalendar();
$('#calendar').fullCalendar('gotoDate', <?=(int)substr($startDate,0,4)?>, <?=((int)substr($startDate,5,2))-1?>);
$('#calendar').fullCalendar('addEventSource', {
url:'/Services/GetEvents.php',
type: 'POST',
data: {
lat: <?=$venLatitude?>,
lon: <?=$venLongitude?>,
userID: <?=$userID?>,
distance: <?=$distance?>
}
});