Fullcalendar计划程序 - 外部拖放不会从HTML传递数据事件

时间:2016-04-13 20:53:28

标签: jquery fullcalendar scheduler

我正在使用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无关 - 只是关于如何获取数据。

你能帮助我,从可拖动的事件中获取这些信息吗?太棒了!

感谢您的帮助。

1 个答案:

答案 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

非常感谢您的帮助,这个问题已经解决了! :)