无法在Fullcalendar中获取“ id”值

时间:2019-08-29 19:21:35

标签: javascript fullcalendar fullcalendar-4

单击约会时我没有得到值。 我总是收到“未定义”

我有这个Codepen https://codepen.io/egameiro/pen/Rwbgemx,您可以在其中查看结果。

有人可以告诉我我做错了吗? 非常感谢。

请参阅下面的代码。

var calendarEl = document.getElementById('calendar');

var calendar = new FullCalendar.Calendar(calendarEl, {
  plugins: ['interaction', 'dayGrid', 'timeGrid'],
  defaultView: 'dayGridMonth',

  locale: 'pt-br',
  header: {
    left: 'prev,next today',
    center: 'title',
    right: 'dayGridMonth,timeGridWeek,timeGridDay'
  },
  navLinks: true, // can click day/week names to navigate views
  selectable: true,
  selectHelper: true,
  //selectMirror: true,
  editable: true,
  eventLimit: true, // allow "more" link when too many events

  //events: event1,
  events: [{
    id: '10',
    title: 'Meeting',
    start: '2019-08-01T10:30:00',
    end: '2019-08-01T12:30:00'
  }],

  eventClick: function (event) {
    alert(event.id);
    alert(event.title);
    alert(event.start.format('DD/MM/YYYY HH:mm:ss'));
    return false;
  },



});

calendar.render();

1 个答案:

答案 0 :(得分:1)

根据documentation for eventClick,回调提供的对象本身不仅仅是事件数据的副本。这是一个更复杂的对象, 其中的事件只是一个子属性。该文档说:

  

eventClickInfo是具有以下属性的普通对象:

     
      
  • event关联的事件对象。

  •   
  • el此事件的HTML元素。

  •   
  • jsEvent带有下层信息的本地JavaScript事件,例如   作为点击坐标。

  •   
  • view当前视图对象。

  •   

因此,事件的数据,例如idtitle等将是该event子属性内的属性,而不是主对象的直接子对象。

一旦您阅读并正确理解了对象的结构,此修复程序就变得微不足道了:

eventClick: function (info) {
    alert(info.event.id);
    alert(info.event.title);
    alert(info.event.start.format('DD/MM/YYYY HH:mm:ss'));
    return false;
  },

更新的CodePen:https://codepen.io/ADyson82/pen/XWraJQx

P.S。您仍然会遇到第二个问题,因为info.event.start是本地JS日期对象,而不是momentJS对象。因此,它没有任何称为“ format()”的函数。也许您更熟悉使用momentJS的fullCalendar版本3?我将由您决定如何处理此特定细节,因为它与您的原始问题并不直接相关。