javascript - 无法从全日历中删除事件

标签 javascript jquery 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);


      }
    },

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

最佳答案

您应该使用为事件提供的字段:id,而不是使用自定义字段unique_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
}, {
[...]

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

关于javascript - 无法从全日历中删除事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32986879/

相关文章:

javascript - 在nwjs中使用shelljs执行命令?

javascript - JQuery表单提交生成一个新表单

javascript - 如何将动态路由传递给 Rails 中的 AJAX POST 请求

javascript - 在 FullCalendar 问题中设置默认点击选择突出显示

javascript - 结合 JSON 和 GCAL 的 jQuery FullCalendar

javascript - 使用 React、Redux 和 Immutable.js 创建模式弹出窗口

javascript - 无法从一个文件调用函数到另一个文件

javascript - jQuery 地理定位 : Cannot read property 'coords' of undefined

jquery - 如何使用 jQuery 匹配字符串的一部分?

javascript - jQuery .css 背景图像预加载