我在同一页面上初始化两个日历,如下所示:
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)属性以让程序员代码在上面?
感谢。
答案 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/