如何防止对dayClick的重复?

问题描述 投票:0回答:1

在提问之前,我透露我是初学者。

我第一次使用fullCalendar。

当我点击日期时,我进行了活动注册。

    var calendar = $('#calendar').fullCalendar
   ({
      dayClick: function (date, allDay, jsEvent, view)
      {

         $('#calendar').fullCalendar('renderEvent', 
         {
             title : '휴진',
             allDay : true,
             start: date, //specify start date
             stick : true,
             backgroundColor: '#fe4978'
          });
      }
   });

此代码允许在事件注册中重复。

一旦事件在特定日期注册,我想阻止事件在此后注册。

我见过与removeEvent相关的文档,但我不知道如何编写代码。

如果你能给我一个指导,我真的很感激。

javascript jquery fullcalendar
1个回答
0
投票

这可以帮助你@won。

 $('#calendar').fullCalendar({

       dayClick: function(date, allDay, jsEvent, view) {

        $('#calendar').fullCalendar('clientEvents', function(event) {

            if(event.start <= date && event.end >= date) {
                return true;
            }
            return false;
        });
     }
 });

更新:

在将所选事件存储到对象之前添加函数。

function IsDateHasEvent(date) {
    var allEvents = [];
    // add your calendar events into the array. 
    allEvents = $('#calendar').fullCalendar('clientEvents');
    var event = $.grep(allEvents, function (v) {
        return +v.start === +date;
    });

    return event.length > 0;
}

并按如下方式更改您的代码。

dayClick: function (date, allDay, jsEvent, view) {

    if (!IsDateHasEvent(date)) {
         // No previous event on this date. 
        selectedDate = date;
        eventData = {
             title: title,
             start: start,
             stick : true,
             backgroundColor: '#fe4978',
             overlap: false,
        };

         $('#calendar').fullCalendar('renderEvent', eventData, true);
         // add new appointment code.
        //$("#divAddNewAppointment").dialog("open");
    }
    else {
        //$('<%= "#" + lblMessage.ClientID%>').html(" your error msg");
        $('#calendar').fullCalendar('unselect');
        $("#divMessage").dialog("open");
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.