我正在使用fullcalendar插件来安排会议和约会。
我可以检索与日/月/周相关的所有事件。现在,我想在空单元格上添加双击事件(没有预约的预约)。
我尝试使用dayRender,但它不可靠,因为它只适用于少数细胞而不是全部。我试过了eventRender,它适用于所有那些有事件关联的细胞。
现在我正在使用jQuery的双击事件,如下所示:
$(CALENDAR.Calendar).undelegate("dblclick").delegate("td", "dblclick", function () {
if (!isEventsLoaded) {
common.notificationMessage("Please sit back we are loading calendar events.", 0);
return false;
}
alreadyClicked = true;
var hasEventAssigned = $(this).find("a").attr('href')
var isFutureMonth = $(this).hasClass("fc-other-month")
if (alreadyClicked && hasEventAssigned == undefined && !isFutureMonth) {
openEditSALPopUp();
alreadyClicked = false;
}
return false;
});
它工作正常,它打开模式弹出窗口以添加新日历或约会,但我找不到需要安排此约会的日期/时间。
请帮我解决这个问题。
答案 0 :(得分:2)
我玩了一会儿,我最好的解决方案是:
使用fullcalendar的dayClick回调获取单击未占用插槽的时刻
请记住点击广告位的时刻
如果鼠标移动,请忘记时刻
将dblClick事件处理程序绑定到日历div。当它发射时,检查是否有记忆的时刻并用它做一些事情。
代码:
$('#calendar').fullCalendar({
...
dayClick: dayClickCallback,
...
});
var slotMoment;
function dayClickCallback(date){
slotMoment = date;
$("#calendar").on("mousemove", forgetSlot);
}
function forgetSlot(){
slotMoment = null;
$("#calendar").off("mousemove", forgetSlot);
}
$("#calendar").dblclick(function() {
if(slotMoment){
console.log(slotMoment); //do something with the moment
}
});