【问题标题】:Full calendar not showing inside bootstrap modal完整的日历未在引导模式中显示
【发布时间】:2013-12-18 06:30:54
【问题描述】:

我想使用引导模式加载一个模式对话框。在它里面我想显示一个完整的日历(jquery),上面有一些事件。我已经创建了我的模态,并将其放入完整的日历中。但是当模态出现时,完整的日历不会显示。但它显示在模态出现后我按下下一个或上一个按钮。但是日历上没有出现任何事件。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,一切都正常呈现。

当模态出现时如何让它加载

【问题讨论】:

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


    【解决方案1】:

    您可以使用这种方法。

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

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

    【讨论】:

      【解决方案2】:

      你应该试试这个:

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

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

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


      FullCalender V4

      在阅读文档时,您可以看到该命令已被弃用,

      您必须调用 calendar.render() 才能获得相同的行为

      Extract of code

        var calendarEl = document.getElementById('calendar');
      
        var calendar = new Calendar(calendarEl, {
          plugins: [ dayGridPlugin ]
        });
      
        calendar.render();
      

      Doc source

      【讨论】:

      • 这拯救了我的一天......拥有你的啤酒;)
      • @Apostolos:当用户点击全日历上的事件时,是否可以创建一个模式?
      • @RobertoFlores 我不确定这是否容易。 Boostrap 文档指出,不支持模态内的模态,必须以编程方式完成。所以我猜它可以通过某种方式完成,但你应该自己实现。
      • @Apostolos 对不起,我觉得我没有说清楚,以下是我要问的问题:stackoverflow.com/questions/37557185/…
      • @Kamlesh 我已经用 V4 部分更新了答案,希望对您有所帮助......
      猜你喜欢
      • 1970-01-01
      • 2017-10-16
      • 1970-01-01
      • 2020-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多