简体   繁体   English

fullcalendar无法设法删除日历中的最后一个事件

[英]fullcalendar cannot manage to delete last event in calendar

I am using fullcalendar http://fullcalendar.io/ User can create and delete events in the calendar. 我正在使用fullcalendar http://fullcalendar.io/用户可以在日历中创建和删除事件。 Relevant information about events are sent in a hidden field as JSON. 有关事件的相关信息以JSON形式在隐藏字段中发送。 This works when user is creating events but I didnt manage to make it correctly update the hidden field when user is deleting events. 当用户创建事件时此方法有效,但是当用户删除事件时我没有设法使其正确更新隐藏字段。 Here's the eventclick callback of my $('#calendar').fullCalendar 这是我的$('#calendar').fullCalendar的eventclick回调

eventClick: function(event, element) {
      if(confirm('Voulez-vous supprimer cette dispo?')) {

        $('#calendar').fullCalendar('removeEvents', event._id);
        var array_all_events = [];
        var all_events = $('#calendar').fullCalendar('clientEvents');
        // console.log(all_events);
        $.each(all_events, function(index, value) {
          // console.log(value.start["_d"]);
          // console.log(index);
           var day         = moment(value.start["_d"]).format('dddd');
           var start_time  = moment(value.start["_d"]).format("HH:mm");
           var end_time    = moment(value.end["_d"]).format("HH:mm");
             // var id          = value.unique_id["_i"];
             var slot        = {
                day: day,
                start_time: start_time,
                end_time: end_time,
              };
            array_all_events.push(slot);
            console.log(array_all_events.length);
            if (array_all_events.length == 0) {
              $("#dispo_array").val("");
            }
            else {
              $("#dispo_array").val(JSON.stringify(array_all_events));
            }
        });
      }
    },

The script actually works when there is more than one hash in array_all_events but I cannot get it to update #dispo_array to an empty string when array_all_events is empty. 当array_all_events中有多个哈希时,该脚本实际上可以工作,但是当array_all_events为空时,我无法获取它来将#dispo_array更新为空字符串。

I got it to work by getting the if and else statement out of the each loop. 我通过使if和else语句脱离每个循环来使其工作。

  eventClick: function(event, element) {
      if(confirm('Supprimer cette disponibilité?')) {

        $('#calendar').fullCalendar('removeEvents', event._id);
        var array_all_events = [];
        var all_events = $('#calendar').fullCalendar('clientEvents');
        // console.log(all_events);
        $.each(all_events, function(index, value) {
          // console.log(value.start["_d"]);
          // console.log(index);
           var day         = moment(value.start["_d"]).format('dddd');
           var start_time  = moment(value.start["_d"]).format("HH:mm");
           var end_time    = moment(value.end["_d"]).format("HH:mm");
             // var id          = value.unique_id["_i"];
             var slot        = {
                day: day,
                start_time: start_time,
                end_time: end_time,
              };
            array_all_events.push(slot);
            // console.log(array_all_events.length);
        });
       if (array_all_events.length == 0) {
          console.log("hello");
          $("#dispo_array").val("");
        }
        else {
          console.log(typeof(array_all_events));
          console.log(array_all_events.length);
          $("#dispo_array").val(JSON.stringify(array_all_events));
        }
      }
    },

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM