视图更改时,Fullcalendar渲染事件

时间:2014-10-29 09:18:31

标签: javascript jquery fullcalendar

我有这段代码

$('#calendar').fullCalendar({
    viewRender:function(view,element){
        if(view.name == "agendaDay"){
            if(jQuery("#calendar").hasClass("hasRendered") == false){
                var newEvent = {
                    start: '2014-10-29 07:00',
                    end: '2014-10-29 10:00',
                    allDay: false,
                };
                $('#calendar').fullCalendar( 'renderEvent', newEvent,'stick');
            }

        }
    },
});

此代码的问题在于,即使我已经在agendaDay视图中,它也会继续调用eventRender。如何防止这种情况发生?

1 个答案:

答案 0 :(得分:2)

不确定为什么要这样做,但这是一个有效的例子:

http://jsfiddle.net/3E8nk/762/

viewRender:(function() {

    var lastViewName;
    return function(view, element) {

        if(view.name === 'agendaDay' && lastViewName != view.name) {

            var newEvent = {
                start: '2014-06-12T10:30:00',
                end: '2014-06-12T12:30:00',
                allDay: false,
                title: 'My test meeting'
            };
            $('#calendar').fullCalendar( 'renderEvent', newEvent);
        }

        lastViewName = view.name;
    }
})(),

请注意,每次进入agendaDay时,这都会再次添加事件(尽管这很容易解决)。如果你描述你真正想要做的事情,可能是一个更好的解决方案。