无法从完整日历中删除事件



我正在使用fullcalendar http://fullcalendar.io/

每当我的用户通过选择一个时间段在日历上创建一个事件时,他都会生成一个带有unique_id的事件对象,然后将其作为JSON推入隐藏字段。

   select: function(start, end, id, allDay) {
      // generate unique id
      function guid() {
        function s4() {
          return Math.floor((1 + Math.random()) * 0x10000)
            .toString(16)
            .substring(1);
        }
        return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
          s4() + '-' + s4() + s4() + s4();
      }
      var eventData = {
        start: start,
        end: end,
        unique_id: guid(),
        block:  true,
        editable: true,
        backgroundColor: "#469278"
      };

      // console.log(moment(eventData.start["_d"]).format("dddd"));
      // console.log(moment(eventData.end["_d"]).format("dddd"));

      $('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true

      // console.log(eventData);
      // if (moment(eventData.start["_d"]).format("dddd") != moment(eventData.end["_d"]).format("dddd")) {
      //   $('#calendar').fullCalendar('unselect');
      // }
      // console.log(start);
      var day         = moment(eventData.start["_d"]).format("dddd");
      var start_time  = moment(eventData.start["_d"]).format("HH:mm");
      var end_time    = moment(eventData.end["_d"]).format("HH:mm");
      var id          = moment(eventData.unique_id)["_i"];
      // console.log(id);
      var slot        = {
        day: day,
        start_time: start_time,
        end_time: end_time,
        id: id
      };
      array_dispo.push(slot);
      $("#dispo_array").val(JSON.stringify(array_dispo));
      $('#calendar').fullCalendar('unselect');
    },

然后我试图通过使用fullcalendar方法http://fullcalendar.io/docs1/event_data/removeEvents/点击它从日历中删除此特定事件

  eventClick: function(event, element) {
      console.log(event);
      console.log(event.unique_id);
      if(confirm('Voulez-vous supprimer cette dispo?')) {
        $('#calendar').fullCalendar('removeEvents', event.unique_id);

      }
    },

不幸的是,事件从未从日历中删除…有什么想法吗?

不要使用自定义字段unique_id,而应该使用为事件提供的字段:id

eventClick: function(event, element) {
  console.log(event);
  console.log(event.id);
  if(confirm('Voulez-vous supprimer cette dispo?')) {
    $('#calendar').fullCalendar('removeEvents', event.id);
  }
},
events: [{
    id: 1,
    title: 'Some Event',
    start: new Date(y, m, d + 1, 19, 0),
    end: new Date(y, m, d + 1, 22, 30),
    allDay: false
}, {
[...]

下面是一个有效的例子:在这里输入链接描述

相关内容

  • 没有找到相关文章

最新更新