由于看的都是旧的中文案例,导致在做日历事件拖曳和resize过程中走了弯路。还是应该看官方的文档啊。
正确的写法:
eventDrop: function(event,delta,revertFunc) {
// alert(event.id+event.title+delta.days());
// var url = "/admin/calendar/dropcalendar";
// $.post(url,{id:event.id,dalta:delta.days()},function(msg){
// });
$.ajax({
type:"post",
url:"/admin/calendar/dropcalendar",
data: {id:event.id,delta:delta.days()},
success:function(data,status){
alert("修改“"+data+"”成功!(status:"+status+".)");
},
error:function(data,status){
alert(data);
revertFunc();
}
});
},
eventResize: function(event,delta,revertFunc) {
// alert(delta.asHours());
$.ajax({
type:"post",
url:"/admin/calendar/resizecalendar",
data: {id:event.id,delta:delta.asHours()},
success:function(data,status){
alert("修改“"+data+"”成功!(status:"+status+".)");
},
error:function(data,status){
alert(data);
revertFunc();
}
});
}
重点就是
function( event, delta, revertFunc, jsEvent, ui, view ) { }
event is an Event Object that hold the event's information (date, title, etc). Call hasTime on the event's start/end to see if it has been dropped in a timed or all-day area (more info).
delta is a Duration Object that represents the amount of time the event was moved by. Available in version 2.0.1 and later.
Duration
Duration objects are used throughout the API. They are a creation of the MomentJS third-party library and can be instantiated with the moment.duration
constructor.
Hours 1.6.0+
editmoment.duration().hours();
moment.duration().asHours();
As with the other getters for durations, moment.duration().hours()
gets the hours (0 - 23).
moment.duration().asHours()
gets the length of the duration in hours.
Days 1.6.0+
editmoment.duration().days();
moment.duration().asDays();
As with the other getters for durations, moment.duration().days()
gets the days (0 - 29).
moment.duration().asDays()
gets the length of the duration in days.
当fullcalendar用drop的时候,这个duration用delta.days(),当fullcalendar用resize的时候,这个duration用delta.asHours()