如何防止对dayClick的重复?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何防止对dayClick的重复?相关的知识,希望对你有一定的参考价值。

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

我第一次使用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相关的文档,但我不知道如何编写代码。

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

答案

这可以帮助你@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");
    }
}

以上是关于如何防止对dayClick的重复?的主要内容,如果未能解决你的问题,请参考以下文章

当我回到片段时防止重复项目

有没有办法将2个非常相似的代码片段组合成一个函数并重复?

如何防止在背面片段导航上再次设置视图模型

Fullcalendar dayClick 代码只触发一次:我做错了啥?

使用导航控制器按下后退按钮后如何防止前一个片段显示?

使用导航控制器按下后退按钮后,如何防止先前的片段出现?