您的事件是存儲在客戶端還是服務器端?
$('#calendar').fullCalendar({
dayClick: function(date, allDay, jsEvent, view) {
$('#calendar').fullCalendar('clientEvents', function(event) {
if(event.start <= date && event.end >= date) {
return true;
}
return false;
});
}
});
這會給重疊點擊的時間,並存儲在客戶端的事件:如果在客戶端,這應該,如果你想在單擊的時間事件具體工作。對於全天時段,它將使當天所有事件重疊。
如果您希望自己在該日期的所有事件,無論是否點擊allDay插槽或時間段。
$('#calendar').fullCalendar({
dayClick: function(date, allDay, jsEvent, view) {
if(!allDay) {
// strip time information
date = new Date(date.getFullYear(), date.getMonth(), date.getDay());
}
$('#calendar').fullCalendar('clientEvents', function(event) {
if(event.start <= date && event.end >= date) {
return true;
}
return false;
});
}
});
如果事件被存儲在服務器上,你會想在你的dayClick回調提供的日期,並用它來構建你的服務器調用獲得的任何格式,你需要的信息。
編輯如果做一個往返或試圖獲得信息的其他方式
$('#calendar').fullCalendar({
dayClick: function(date, allDay, jsEvent, view) {
var startDate = new Date(date.getFullYear(), date.getMonth(), date.getDay(), 0, 0, 0).getTime();
var endDate = new Date(date.getFullYear(), date.getMonth(), date.getDay(), 23, 59, 59).getTime();
var cache = new Date().getTime();
$.getJSON("/json-events.php?start="+startDate+"&end="+endDate+"&_="+cache,
function(data) {
// do stuff with the JSOn data
}
}
});
如果你不想來回,你也可以看看會發生什麼,說,在fullCalendar.js中refetchEvents。如果你不介意與fullCalendar樹幹不同,你可以在某處保存獲取的事件,這樣你就不會執行一堆DOM操作(取決於事件的數量,因爲它們會變大而變得笨重)。
感謝您的回覆 我的事件用 事件來自服務器端:「JSON-events.php」 那麼,我需要AJAX調用來檢索事件? 是否可以編寫一個接受日期作爲參數並返回給定日期的事件列表而不返回服務器端的JavaScript函數? 因爲我可以在客戶端瀏覽器上看到日期的事件。是不是可以從日曆dom查詢事件? – zawmn83 2010-03-25 14:43:27
如果您嘗試通過DOM完成工作,查看fullcalendar.js文件中的代碼將有助於您做出明顯的選擇。你會注意到創作者亞當·肖(Adam Shaw)對tds進行計數以瞭解將要舉辦各種活動的日期。所以是的,這絕對有可能。這會變得更加痛苦並且需要大量的DOM操作 - 或許足夠讓往返服務器的速度更快。此外,DOM操作不會爲您提供事件的JSON,而是放置在內部的div來描述事件,只顯示顯示的信息。可能夠了,可能不行。 – justkt 2010-03-25 15:06:59
我可以看到代表日曆dom中每個日期的td。 但事件在日曆表後存儲爲獨立的div。 我沒有看到這個事件的div和td關係。 那麼我在哪裏可以得到事件div和日期td之間的關係? 謝謝 – zawmn83 2010-03-26 04:03:59