2015-02-05 10 views
1

我初始化同一頁上的兩個日曆如下:如何一次初始化多個Fullcalendar時識別選擇器ID?

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

我會建議你做這種方式:

用您選擇一個陣列,並將其設置爲自定義選項的日曆配置:

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/

+0

太好了。它運作良好。非常感謝。 – nlok888 2015-02-07 02:56:44

0

你有沒有試過在fullCalendar函數裏得到$(this).attr('id');?這應該工作。

如果youre有問題,請嘗試使用

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

,以確保每一個被稱爲seperatly對象,然後$(this).attr('id');內fullCalendar功能將正常工作。

+0

測試沒有運氣。 console.log('id是:'+ $(this).attr('id'));返回id是:undefined。 – nlok888 2015-02-06 03:46:08

相關問題