javascript - 全日历。从外部列表中删除拖动的事件

标签 javascript fullcalendar fullcalendar-4

我正在使用 Fullcalendar 4,并且在重新获取事件时遇到问题。我正在使用下拉菜单更改事件源,但我只能重新获取存储在 json 中的事件,而不能重新获取动态拖动的事件。我正在使用以下代码。

calendar.destroy();
var eventSources = calendar.getEventSources();
var len = eventSources.length;
for (var i = 0; i < len; i++) { 
eventSources[i].remove(); 
}
var url = './demo2/contents/calendar/get.php?source='+source;
calendar.addEventSource(url);
calendar.refetchEvents();
calendar.render();

如何使用 eventReceive 将所有拖动事件添加到新源?

eventReceive: function(info) {
calendar.addEvent(event,  [, source ]);    
},

外部列表是使用以下代码生成的,我尝试指定源位置,但当我从外部列表拖放时似乎不起作用:

var initDrag = function(el,value) {

 var eventObject = {

 id: el.attr("data-id"),
 startEditable: true,
 allDay: false,
 durationEditable: true,
 title: $.trim(el.text()), // use the element's text as the event title
 stick: true, // maintain when user navigates (see docs on the renderEvent method)
 classNames: [el.attr("data-color"),],
 description: 'Lorem ipsum dolor eius mod tempor labore',
 source: 'planificacion'
 };

 // store the Event Object in the DOM element so we can get to it later
 el.data('event', eventObject);

 };

最佳答案

谢谢 ADyson,你解决了我的问题。这个解决方案有效。

eventReceive: function(info) { // called when a proper external event is dropped

 var evt = info.event;
 evt.remove();
 var newEvent = {};
 //clone the object - doesn't work if we just pass evt straight to the addEvent method
 for (prop in evt) {
 newEvent[prop] = evt[prop];
 }

 calendar.addEvent(newEvent,'planificacion');

}

关于javascript - 全日历。从外部列表中删除拖动的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58221949/

相关文章:

javascript - 在 javascript 中, ( ... ) 究竟做了什么

javascript - 如何使用 JavaScript 在单击鼠标时更改 td 中的 CSS

javascript - Fullcalendar 不渲染事件

fullcalendar - EXDATE 是否不包含在完整日历的规则中

javascript - 限制全日历中事件的创建

javascript - 在 fullcalendar 中使用资源 - 测试

javascript - jQuery - 检查 anchor 的 URL

javascript - 有条件的然后在 promise 中( bluebird )

javascript - FullCalendar HTML5 拖放 API

jquery fullcalendar 与更新事件无法更新类