2013-11-21 54 views
0

我正在使用Fullcalendar(http://arshaw.com/fullcalendar/)並試圖讓它在對話框中顯示。Fullcalendar不在對話框中呈現

當我點擊按鈕打開對話框時,會出現對話框和日曆呈現,但它只顯示實際日曆的左上角。如果我然後正確拖動對話框的角落,即使是1毫米的日曆,也可以完全呈現​​對話框空間的水平和垂直。

我在Fullcalendar網站上找到了一個關於渲染的參考,這聽起來正是我所需要的 - 它迫使日曆立即渲染並調整它的大小。

網站上的例子(http://arshaw.com/fullcalendar/docs/display/render/)使用標籤和建議:

$('#my-tabs').tabs({ 
    activate: function(event, ui) { 
     $('#calendar').fullCalendar('render'); 
    } 
}); 

我的問題是,因爲我不知道在哪裏把它放在我不能得到這個在我的情況下工作 - 我簡單的JS代碼如下:

$(document).ready(function() { 

    $("#open").button().click(function() { 
     $("#dialog").dialog("open"); 
    }); 

    $('#calendar').fullCalendar({ 
     eventSources: [ 
      'json_feed.php' 
     ] 
    }); 

    $("#dialog").dialog({ 
     autoOpen: false, 
     height: 450, 
     width: 450, 
     modal: false, 
     activate: function(event, ui) { 
      $('#calendar').fullCalendar('render'); 
     }  
    }); 
}); 

在控制檯中沒有錯誤,所以任何人都可以闡明爲什麼這不起作用?

感謝

+0

'dialog'沒有'activate'選項或事件,請嘗試'open'。在jsfiddle.net創建一個演示 – charlietfl

+0

創建一個小提琴並打開已修復它 - 激活它不能正確顯示,直到您調整包含窗口(http://jsfiddle.net/xJ964/),但使用打開(http:///jsfiddle.net/xJ964/1/)它第一次正常工作。如果你想添加一個答案將接受,謝謝 – bhttoan

+0

正確...插件中的代碼永遠不會尋找一個選項'activate'來運行它的代碼,所以它什麼都不做 – charlietfl

回答

1

簡單的問題是jQueryUI dialog沒有一個事件或選項activate。相反,你想要的是open。每個組件的jqueryUI文檔都包含選項,事件和方法的完整列表,其中包含所有解釋和示例......因此,如果有疑問,請從這裏開始。