我有这个代码

$('#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');
            }

        }
    },
});


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

最佳答案

不知道为什么要这样做,但是这是一个有效的示例:

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;
    }
})(),


请注意,这将在您每次进入scheduleDay时再次添加事件(尽管可以很容易地对此进行补救)。如果您描述了您实际想要做什么,那么可能会找到更好的解决方案。

10-04 16:49