2014-10-29 65 views
2

我有这样的代码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'); 
      } 

     } 
    }, 
}); 

这段代码的问题是,它不断调用eventRender即使我在agendaDay鉴于今年已经。我如何防止发生这种情况?

回答

1

不知道你为什么会想这样做,但这里有一个工作示例:

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(这可以很容易地每次添加事件虽然补救)。如果你描述你真正想做的事情,那么可能有更好的解决方案。