fullcalendar:在init之后更新选项函数回调

时间:2010-05-20 20:07:06

标签: jquery callback fullcalendar

好的,所以我在设置选项时遇到问题,在插件初始化后尝试设置它们时,这些选项的值是回调函数。我认为这是一种常见的行为,在初始化日历后动态设置事件回调。

以下是代码片段:

 $(document).ready(function() {
  $('#calendar').fullCalendar({
   editable: false
   ,events:[{"title":"meeting.title","start":"2010-05-21 15:58:16 UTC"},{"title":"meeting.title","start":"2010-05-24 15:58:16", "url":"http://google.com"}]
 /*  ,eventClick: function(event) { 
              if (event.url) {
                  window.open(event.url);
                  return false;
              }
          }
   */
  });
 $('#calendar').fullCalendar('option', 'eventClick', function(event) {
          if (event.url) {
              window.open(event.url);
              return false;
          }
      });

});

您可以看到将eventClick函数设置为注释掉的init选项。如果我这样做,它工作正常。但是,如果我尝试在init之后设置它,它就不起作用:(

是否有其他方法可以做到这一点?或者我不得不提前设置行为?

2 个答案:

答案 0 :(得分:1)

显然我相信你已经解决了这个问题,但是对于任何可能遇到这个问题的人来说,这就是我如何解决这个问题。

 $(document).ready(function() {
  $('#calendar').fullCalendar({
   editable: false
   ,events:[{"title":"meeting.title","start":"2010-05-21 15:58:16 UTC"},{"title":"meeting.title","start":"2010-05-24 15:58:16", "url":"http://google.com"}]
   ,eventClick: function(event) {eventClickCustom(event)}
  });

var eventClickCustom = function(event)
{
    //do what you want here, you can can update this function all you want.
}

//then later
var eventClickCustom = function(event)
{
   //updated version of the function
}

答案 1 :(得分:0)

fullCalendar eventClickcallback method。查看完代码后,我认为您无法在初始化日历后添加此选项。我甚至尝试将eventClick函数添加到日历的数据中(它存储公共函数)。所以,我能想到的唯一选择是附加你自己的事件处理程序。你可以试试这个:

$('#calendar').find('.fc-event,.ui-event').find('a[href]').live('click', function(){
 window.open( $(this).attr('href') );
 return false;
})

哦,我定位.fc-event.ui-event类的原因是因为它会因您使用theme选项而改变。