如何为doublecalendar插件添加新事件

时间:2015-11-20 12:26:35

标签: jquery asp.net-mvc fullcalendar

我正在使用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;
});

它工作正常,它打开模式弹出窗口以添加新日历或约会,但我找不到需要安排此约会的日期/时间。

请帮我解决这个问题。

1 个答案:

答案 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
    }
});