无法从fullcalendar中删除事件

时间:2015-10-07 08:03:40

标签: javascript jquery fullcalendar

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


      }
    },

不幸的是,活动永远不会从日历中删除......有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您应使用为活动提供的字段,而不是使用自定义字段unique_idid

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
}, {
[...]

以下是一个有效的示例:enter link description here