我正在使用FullCalendar的调度程序,并希望进行外部拖放 - 但我尝试从HTML中获取一些数据的所有内容都无法正常工作。
例如,我想用自己的事件覆盖生成的事件ID,以便在PHP中与实体匹配,并创建一个与之相关的新对象。
我遵循 drop 中的每条指令,通过 eventReceive 以及必须存在的属性。无论如何,它不能通过 data-event ='{“id”:“XYZ”}'和 data-event ='1'data-id ='XYZ工作可拖动HTML元素中的。
<label class="label-primary form-control draggable draggable-event" data-event="{'id':'XYZ'}">XYZ-Title</label>
在我的JS事件中,我确实得到了事件对象,但是在这个对象中我找不到任何我设置为HTML-Object的数据。没有ID,没有标题,没有颜色 - 唯一有效的是事件的持续时间。
eventReceive: function(event) { // called when a proper external event is dropped
console.debug('eventReceive', event);
},
那么,我如何设置这些细节 - 以及如何通过回调将它们(稍后)通过ajax发送到PHP。这个问题与AJAX-Calls无关 - 只是关于如何获取数据。
你能帮助我,从可拖动的事件中获取这些信息吗?太棒了!
感谢您的帮助。
答案 0 :(得分:1)
感谢您的回复!我仔细检查了有效的json字符串以使其正常工作,并查看了另一个问题(这是半路复制品)。首先,我的JSON是错误的,但在我的帖子创建之前,这是我尝试过的事情之一(使用不同的语法)。最后我发现了一个简单的问题&#34;本教程中使用的代码,但不符合我的要求 - 但我首先没有认识到这是我的问题。
// edited code
$('#external-events .fc-event').each(function() {
// get the complete object data from html
var eventData = $(this).data('event');
// extend this object with the settings you want to make
$.extend(eventData, {
stick: true // maintain when user navigates (see docs on the renderEvent method)
});
// store data so the calendar knows to render an event upon drop
$(this).data('event', eventData);
// make the event draggable using jQuery UI
$(this).draggable({
zIndex: 999,
revert: true, // will cause the event to go back to its
revertDuration: 0 // original position after the drag
});
});
});
最后,它涉及数据部分,它覆盖整个对象,传递。我将行更改为扩展以设置默认值,但也从html中获取对象:
remote:true
非常感谢您的帮助,这个问题已经解决了! :)