簡體   English   中英

在全日歷對象事件中獲取事件ID

[英]Getting the event id in fullcalendar object event

我正在使用http://fullcalendar.io/。我的用戶可以創建多個事件來表明他的責任。 每當他選擇一個廣告位時,他都會創建一個事件:

 $('#calendar').fullCalendar({
    defaultView:  'agendaWeek',
    lang:         "fr",
    header:       false,
    timezone:     'local',
    minTime:      "08:00:00",
    columnFormat: 'dddd',
    selectHelper: true,
    selectable:   true,
    select: function(start, end, id, allDay) {
      var eventData = {
        start: start,
        end: end,
        block:  true,
        editable: true,
        id: id,
        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');
      // };
      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.end["_id"]);

      var slot        = {
        day: day,
        start_time: start_time,
        end_time: end_time
      };
      array_dispo.push(slot);

      $("#dispo_array").val(JSON.stringify(array_dispo));
      $('#calendar').fullCalendar('unselect');
    },
    editable:     true,
    eventLimit:   true,
    eventClick: function(event, element) {
      if(confirm('Voulez-vous supprimer cette dispo?')) {
        $('#calendar').fullCalendar('removeEvents',event._id);
      }
    },

    selectOverlap: function(event) {
      return ! event.block;
    }
  });
});
          // 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');
          // };
          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.end["_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');
        },

每次用戶選擇一個時隙時,它都會使用我指定的eventData創建一個事件對象http://fullcalendar.io/docs/event_data/Event_Object/ ,並在隱藏字段中將其作為JSON發送。 問題是我沒有設法獲取這個事件對象的id,我想它是由fullcalendar發送的。 我做console.log(eventData);時得到的對象console.log(eventData); 是:

Object {start: Moment, end: Moment, id: jQuery.Event, block: true, editable: true…}

但是這個jQuery.event沒有唯一的ID,它看起來像這樣:

id: jQuery.Event
altKey: false
bubbles: true
button: 0
buttons: 0
cancelable: true
clientX: 336
clientY: 290
ctrlKey: false

如果以后要刪除或修改事件對象,則需要此ID。 如何獲取此事件ID?

您可以在eventData對象中指定自己的ID,在給出的示例中為1 確保具有這些唯一性,然后您可以將此ID傳遞給.fullCalendar( 'removeEvents' [, idOrFilter ] )例如。

在以下位置找到創建唯一ID的示例: 在JavaScript中創建GUID / UUID?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM