完整的日历没有显示内部bootstrap模式

时间:2013-12-02 14:04:05

标签: javascript jquery twitter-bootstrap twitter-bootstrap-3 fullcalendar

我想使用bootstrap模式加载模态对话框。在其中我想显示一个fullcalendar(jquery one),上面有一些事件。我创建了我的模态,并放入完整的日历。但是当模态出现时,完整日历不会显示。但它显示在模态出现后我按下下一个或上一个按钮。但是日历上没有任何事件显示。jsfiddle here 和代码

<a href="#myModal" role="button" class="btn btn-default" data-toggle="modal">Launch demo modal</a>

<div id="myModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
            <h3 id="myModalLabel">Modal header</h3>
        </div>
        <div class="modal-body">
            <div class="row">
                <div class="col-xs-6">
                    <div id="calendar"></div>
                </div>
            </div>            
        </div>
        <div class="modal-footer">
            <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
            <button class="btn btn-primary">Save changes</button>
        </div>
    </div>
</div>

JS

$("#calendar").fullCalendar({
    header:{
        left:'prev',
        center:'title',
        right:'next'
    },
    events:'/eventsfeed/',
    defaultView:'agendaDay'
});

这也使事件不会出现在日历上。这是我/ eventsfeed返回的内容

[{"url": "/calendar/entry/223", "start": "2013-12-04T17:00:00Z", "end": "2013-10-04T16:45:00Z", "description": "a body", "title": "Title entry"}]

我在项目和事件的不同页面中使用fullcalendar,一切都正常呈现。

如何在模态出现时加载

2 个答案:

答案 0 :(得分:38)

你应该试试这个:

$('#myModal').on('shown.bs.modal', function () {
   $("#calendar").fullCalendar('render');
});

这是你的小提琴:http://jsfiddle.net/mzAEj/2/

以下是文档:http://arshaw.com/fullcalendar/docs/display/render/

答案 1 :(得分:0)

您可以使用这种方法。

加载.modal后,触发日历的MONTH,DAY或WEEK按钮。

$('.modal').focus(function(){
  $('.fc-month-button').trigger('click');
});