繁体   English   中英

使用FullCalendar.js在多个日历上创建事件

[英]Creating events on multiple calendars with FullCalendar.js

我正在使用我网站上的FullCalendar javascript库来并排显示每个员工的日历。 日历显示“日”视图,因此很容易看到每个人的日程安排。

我的所有日​​历并排显示正确(每个日历在各自的div中)。

我的问题是,通过单击日历创建新事件时,该事件总是在页面的最后一个日历上创建,而不是您单击的实际日历。 我觉得它与select回调函数中的闭包有关。

/*
*   Setup calendars for each sales person
*/
var d = $.fullCalendar.parseDate($("#requested_date").val());

//employee id numbers (each employee has own calendar)
var employees = new Array(445,123,999,444); 

for(i=0;i<employees.length;i++)
{
        var employeeId = employees[i];

        //clear any prevoius calendar info
        $('#calendar_' + employeeId).html("");

        calendar[employeeId] = $('#calendar_' + employeeId).fullCalendar({
            header: {
                left: '',
                center: '',
                right: ''
            },
            year: d.getFullYear(),
            month: d.getMonth(),
            date: d.getDate(),
            defaultView: 'agendaDay',
            minTime: 7,
            maxTime: 19,
            height: 650,
            editable: true,
            selectable: true,
            selectHelper: true,
            select: function(start, end, allDay) { 

                calendar[employeeId].fullCalendar('renderEvent',
                    {
                        title: "This Estimate",
                        start: start,
                        end: end,
                        allDay: allDay
                    },
                    true // make the event "stick"
                );

                calendar[employeeId].fullCalendar('unselect');
            },
            events: {
                url: 'calendar/'+employees[employeeId],
                type: 'POST',
                data: {
                        'personId': employees[employeeId],
                        'ci_csrf_token': wp_csr_value
                    },
                error: function() {
                alert('there was an error while fetching events!');
            }
        }
    });
}

谢谢

当您选择日历employeeId等于444时,它将在最后一个日历上呈现事件,请尝试以下操作:

select: function(start, end, allDay , jsEvent ,view) { 
       $(view.element).parent().parent().fullCalendar('renderEvent',
                    {
                        title: "This Estimate",
                        start: start,
                        end: end,
                        allDay: allDay
                    },
                    true // make the event "stick"
                );

                $(view.element).parent().parent().fullCalendar('unselect');
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM