Javascript jQueryUI FullCalendar:从服务器获取事件后的回调

Javascript jQueryUI FullCalendar:从服务器获取事件后的回调,javascript,jquery-ui,fullcalendar,Javascript,Jquery Ui,Fullcalendar,我使用Adam Shaw()提供的jQueryUI完整日历 当我按下“下一步”按钮时,日历将从我的服务器加载新事件,我希望在我的页面上将这些事件显示为表格,而不仅仅是在日历中。一旦FullCalendar获取了事件,是否有一个回调函数可以注入来处理事件?或者是否有其他方法获取当前显示的事件?您发布的链接显示了您问题的答案: $('#calendar').fullCalendar({ events: function(start, end, callback) { $.ajax({ ...

我使用Adam Shaw()提供的jQueryUI完整日历


当我按下“下一步”按钮时,日历将从我的服务器加载新事件,我希望在我的页面上将这些事件显示为表格,而不仅仅是在日历中。一旦FullCalendar获取了事件,是否有一个回调函数可以注入来处理事件?或者是否有其他方法获取当前显示的事件?

您发布的链接显示了您问题的答案:

$('#calendar').fullCalendar({
events: function(start, end, callback) {
    $.ajax({
...
每次获取新事件时都会使用“events”回调函数。在本例中,调用jQuery的
$.ajax
函数来检索事件数据(请看一看)。然后,
$.ajax
的“success”回调将事件数据从服务器解析为FullCalendar期望的格式:

$(doc).find('event').each(function() {
     events.push({
         title: $(this).attr('title'),
         start: $(this).attr('start') // will be parsed
     });
 });
callback(events);

在示例中,“doc”是一个xml文档,其中包含带有title和start属性的事件元素。您应该将其更改为从服务器检索到的任何内容。使用检索到的数据,您可以在将其传递到FullCalendar之前或之后执行任何您想要的操作(使用
回调(事件);
如示例所示)

您发布的链接显示了问题的答案:

$('#calendar').fullCalendar({
events: function(start, end, callback) {
    $.ajax({
...
每次获取新事件时都会使用“events”回调函数。在本例中,调用jQuery的
$.ajax
函数来检索事件数据(请看一看)。然后,
$.ajax
的“success”回调将事件数据从服务器解析为FullCalendar期望的格式:

$(doc).find('event').each(function() {
     events.push({
         title: $(this).attr('title'),
         start: $(this).attr('start') // will be parsed
     });
 });
callback(events);

在示例中,“doc”是一个xml文档,其中包含带有title和start属性的事件元素。您应该将其更改为从服务器检索到的任何内容。使用检索到的数据,您可以在将其传递到FullCalendar之前或之后执行任何操作(使用
回调(事件);
如示例所示)

使用eventRender在DOM中插入事件。看

或者收集它们以稍后将其插入DOM:

var collection = [];
$('#calendar').fullCalendar({
    eventRender: function(event, element) {
        collection.push(event);
    }
});

使用eventRender在DOM中插入事件。看

或者收集它们以稍后将其插入DOM:

var collection = [];
$('#calendar').fullCalendar({
    eventRender: function(event, element) {
        collection.push(event);
    }
});

我通过重写代码来获取数据,从而解决了这个问题:

var myCustomFunction = function(events) {
    // do something
}

var myCustomFetchFunction = function(start, end, callback) {
    $.ajax({
        url: 'feed.php',
        dataType: 'json',
        data: {
            // our hypothetical feed requires UNIX timestamps
            start: Math.round(start.getTime() / 1000),
            end: Math.round(end.getTime() / 1000)
            // additional parameters can be added here
        },
        success: function(events) {
            callback(events);
            // this is where I do some custom stuff with the events
            myCustomFunction(events);
        }
    });
};

$('#calendar').fullCalendar({
     events: myCustomFetchFunction()
});

我通过重写代码来获取数据,从而解决了这个问题:

var myCustomFunction = function(events) {
    // do something
}

var myCustomFetchFunction = function(start, end, callback) {
    $.ajax({
        url: 'feed.php',
        dataType: 'json',
        data: {
            // our hypothetical feed requires UNIX timestamps
            start: Math.round(start.getTime() / 1000),
            end: Math.round(end.getTime() / 1000)
            // additional parameters can be added here
        },
        success: function(events) {
            callback(events);
            // this is where I do some custom stuff with the events
            myCustomFunction(events);
        }
    });
};

$('#calendar').fullCalendar({
     events: myCustomFetchFunction()
});

对于寻求此解决方案的其他人来说,在V2中非常容易。可以使用简单事件对象传递成功回调

        $('#calendar').fullCalendar({
            events: {
                url: 'http://yourdatafeed',
                type: 'POST',
                error: function() {
                    // Alert on error
                },
                success: function (data) {
                    // data will have your json array of event objects
                },
            }
        });

对于寻求此解决方案的其他人来说,在V2中非常容易。可以使用简单事件对象传递成功回调

        $('#calendar').fullCalendar({
            events: {
                url: 'http://yourdatafeed',
                type: 'POST',
                error: function() {
                    // Alert on error
                },
                success: function (data) {
                    // data will have your json array of event objects
                },
            }
        });

我不想覆盖函数来获取事件。我更希望添加一个在FullCalendar成功获取事件后调用的回调。请你带我到这儿再远一点好吗?你应该看看。有一个事件
eventAfterAllRender
可能会有所帮助。或传递事件的
eventRender
。如何在eventAfterAllRender回调函数中获取事件?ViewObject不保存事件:您想对事件做什么?您需要完整的事件集,还是希望对每个事件单独执行某些操作?我需要所有事件并将它们作为dom元素注入我的网站。所以我基本上想从所有事件中获取标题和日期,并用它们创建html。我不想覆盖函数来获取事件。我更希望添加一个在FullCalendar成功获取事件后调用的回调。请你带我到这儿再远一点好吗?你应该看看。有一个事件
eventAfterAllRender
可能会有所帮助。或传递事件的
eventRender
。如何在eventAfterAllRender回调函数中获取事件?ViewObject不保存事件:您想对事件做什么?您需要完整的事件集,还是希望对每个事件单独执行某些操作?我需要所有事件并将它们作为dom元素注入我的网站。所以我基本上想从所有事件中获取标题和日期,并用它们创建html。我在日历中做了类似的事情,我必须通过数据表与日历内外的完整日历事件进行交互。尝试使用Datatables jquery插件,它将使您的生活变得轻松;)我对我的日历做了类似的事情,我必须通过数据表与日历内外的fullcalendar事件进行交互。尝试使用Datatables jquery插件,它将使您的生活变得轻松;)这正是我在第一个答案中解释的。谢谢,我只是不能理解你的答案,我想更多的代码会有所帮助。但也许只是我。谢谢你的帮助。这正是我在第一个答案中解释的。谢谢,我只是不理解你的答案,我想更多的代码会有所帮助。但也许只是我。谢谢你的帮助。