0

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

这是一段代码:

$(文档).ready(函数() {
  $('#calendar').fullCalendar({
   可编辑:假
   ,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) {
              如果(事件.url){
                  window.open(event.url);
                  返回假;
              }
          }
   */
  });
 $('#calendar').fullCalendar('option', 'eventClick', function(event) {
          如果(事件.url){
              window.open(event.url);
              返回假;
          }
      });

});

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

有其他方法可以做到这一点吗?或者我是否坚持必须预先设置行为?

4

2 回答 2

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
}
于 2011-09-23T18:50:26.550 回答
0

fullCalendareventClick是一个回调方法。查看代码后,我认为您无法在日历初始化后添加此选项。我什至尝试将 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选项而改变。

于 2010-05-20T21:00:22.900 回答