Sự kiện của bạn có được lưu trữ ở phía máy khách hoặc ở phía máy chủ không? Nếu trên các mặt hàng, điều này sẽ làm việc đặc biệt nếu bạn muốn sự kiện trong thời gian đó nhấp:
$('#calendar').fullCalendar({
dayClick: function(date, allDay, jsEvent, view) {
$('#calendar').fullCalendar('clientEvents', function(event) {
if(event.start <= date && event.end >= date) {
return true;
}
return false;
});
}
});
này sẽ cung cấp cho các sự kiện mà chồng lên nhau lần nhấp và được lưu trữ trên các mặt hàng. Đối với các khe cắm cả ngày, nó sẽ cung cấp cho tất cả các sự kiện chồng chéo ngày hôm đó.
Nếu bạn muốn tất cả các sự kiện trên chính ngày đó, bất kể vị trí thẻ allDay hay một khe thời gian đã được nhấp.
$('#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;
});
}
});
Nếu sự kiện của bạn được lưu trữ trên máy chủ, bạn sẽ muốn thực hiện cuộc gọi đến máy chủ của mình để nhận thông tin ở bất kỳ định dạng nào bạn cần.
EDIT Nếu làm một chuyến đi vòng hoặc cố gắng để có được những thông tin cách khác
$('#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
}
}
});
Và nếu bạn không muốn chuyến đi vòng, bạn cũng có thể có một cái nhìn vào những gì xảy ra trong, nói , refetchEvents trong fullCalendar.js. Nếu bạn không ngại phân tách khỏi thân cây fullCalendar, bạn có thể lưu các sự kiện đã tìm nạp ở đâu đó để bạn không thực hiện một loạt thao tác DOM (tùy thuộc vào số lượng sự kiện, khi chúng lớn lên sẽ khó sử dụng).
Cảm ơn trả lời của bạn sự kiện của tôi là đến từ phía máy chủ bằng cách sử dụng sự kiện: "json-events.php" Vì vậy, tôi cần phải gọi ajax để lấy các sự kiện? Có thể viết một hàm javascript chấp nhận ngày làm thông số và trả về danh sách sự kiện của ngày đã cho mà không quay lại phía máy chủ không? Vì tôi có thể xem các sự kiện cho ngày trên trình duyệt của khách hàng. Không phải là nó có thể truy vấn các sự kiện từ lịch dom? – zawmn83
Nếu bạn đang cố gắng thực hiện công việc thông qua DOM, hãy xem mã trong tệp fullcalendar.js sẽ giúp bạn hiểu rõ hơn. Bạn sẽ nhận thấy rằng Adam Shaw, người sáng tạo, đếm tds để biết ngày nào để đặt các sự kiện khác nhau. Vì vậy, có, nó chắc chắn có thể làm điều này. Nó sẽ trở nên đau đớn hơn nhiều và đòi hỏi nhiều thao tác DOM - có lẽ đủ để một chuyến đi khứ hồi tới máy chủ sẽ nhanh như vậy. Ngoài ra, thao tác DOM sẽ không giúp bạn có được JSON của các sự kiện, nhưng các div được đặt bên trong để mô tả các sự kiện, chỉ hiển thị thông tin được hiển thị. Có thể là đủ, có thể không. – justkt
Tôi có thể thấy td đại diện cho mỗi ngày trong lịch dom. Nhưng sự kiện được lưu trữ dưới dạng div riêng biệt sau bảng lịch. Tôi không thấy div sự kiện này và mối quan hệ td. Vậy tôi có thể lấy mối quan hệ giữa div sự kiện và ngày tháng td ở đâu? Cảm ơn – zawmn83