我在同一页面上初始化两个日历,如下所示:
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
.....
}
每个日历都有自己的一套活动。如何知道events函数中的选择器id?fullCalendar是否公开$(this)属性以允许程序员对其进行代码编写?
谢谢。
我建议你这样做:
使用选择器创建一个数组,并将其设置为日历配置的自定义选项:
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/
您是否尝试过在fullCalendar函数中获取$(this).attr('id');
?这应该行得通。
如果你有问题,试着使用
$("#calendar1, #calendar2").each().fullCalendar({etc..
以确保每个对象都被单独调用,然后fullCalendar函数中的$(this).attr('id');
就会工作。