如何在一次初始化多个Fullcalendar时识别选择器ID?

时间:2015-02-05 16:06:22

标签: fullcalendar

我在同一页面上初始化两个日历,如下所示:

HTML

<div id="calendar1"></div>
<div id="calendar2"></div>

的javascript

$("#calendar1, #calendar2").fullCalendar({
 .....
  events: function(start, end, timezone, callback) {
            var evt1=[{title:'A',start:'2015-02-01'}];
            var evt2=[{title:'B',start:'2015-02-01'}];

            calendarid = $(this);  <== how to get the id?

            if (calendarid = 'calendar1') { callback(evt1); }
            if (calendarid = 'calendar2') { callback(evt2); }                       

  }, // end of events
 .....
}

每个日历都有自己的一组事件。如何知道事件函数中的选择器ID? fullCalendar是否公开$(this)属性以让程序员代码在上面?

感谢。

2 个答案:

答案 0 :(得分:0)

您是否尝试在fullCalendar函数中获取$(this).attr('id');?这应该工作。

如果您遇到问题,请尝试使用

$("#calendar1, #calendar2").each().fullCalendar({etc..

确保每个对象被单独调用,然后fullCalendar函数内的$(this).attr('id');将起作用。

答案 1 :(得分:0)

我建议你这样做:

使用选择器创建一个数组,并将其设置为日历配置的自定义选项:

var calendars = ['calendar1', 'calendar2'];
for (var i = 0; i < calendars.length; i++) {
    fullCalConfig.id = calendars[i];
    console.log(fullCalConfig);
    $('#'+fullCalConfig.id).fullCalendar(fullCalConfig);
}

现在,您可以在events函数中查找选择器:

events: function(start, end, timezone, callback) {
        var evt1=[{title:'A',start:'2015-02-01'}];
        var evt2=[{title:'B',start:'2015-02-01'}];
        calendarid = this.options.id;
        if (calendarid == 'calendar1') { callback(evt1); }
        if (calendarid == 'calendar2') { callback(evt2); }                       
  },

我为你设置了一个jsFiddle: http://jsfiddle.net/kqdzz5wq/1/