javascript - fullCalendar ListView 无法显示

标签 javascript html twitter-bootstrap fullcalendar

我正在向我的网站添加 fullcalendar 以显示各种即将举行的事件。我希望使用“Bootstrap 选项卡框”(在 html 不同部分之间切换的选项卡)在普通日历 View 和 ListView 中显示日历。我已经按照我认为正确的方式实现了它,并且日历 View 显示完美,但 ListView 却没有。显示该选项卡时,界面会加载,但只有当您快进一个月然后再次返回时,才会显示该月的事件。我找不到任何解决办法,我完全不明白为什么它不起作用。我尝试过很多不同的方法,但现在已经耗尽了所有的想法。你知道我该如何解决这个问题吗? enter image description here

<!-- fullCalendar 2.2.5-->

<link rel="stylesheet" href="../plugins/fullcalendar/fullcalendar.min.css">

<link rel="stylesheet" href="../plugins/fullcalendar/fullcalendar.print.css" media="print">

<!-- fullCalendar 2.2.5 -->

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.2/moment.min.js"></script>

<script src="../plugins/fullcalendar/fullcalendar.min.js"></script>


<div class="nav-tabs-custom">
    <ul class="nav nav-tabs">
      <li class="active"><a href="#tab_1" data-toggle="tab">Calendar View</a></li>
      <li><a href="#tab_2" data-toggle="tab" onclick="RenderList()">List View</a></li>
    </ul>
    <div class="tab-content">
      <div class="tab-pane active" id="tab_1">
        <div class="calendar" id="calendarView"></div>
      </div>
      <!-- /.tab-pane -->
      <div class="tab-pane" id="tab_2">
        <div class="calendar" id="calendarList"></div>
      </div>
      <!-- /.tab-pane -->
    </div>
    <!-- /.tab-content -->
  </div>

<script>
function RenderList(){
    $('#calendarList').fullCalendar('changeView', 'listMonth');
}

$(document).ready(function() {
    $('.calendar').fullCalendar({
        //Options for Both Calendars
        events: [
            {
                title: 'My Birthday',
                start  : '2017-01-05',
                end    : '2017-01-07'
            }  
        ],
    });

    $('#calendarView').fullCalendar({
       //Options for Calendar View 
    });

    //$('#calendar').fullCalendar({
        //Options
        //firstDay: 1
    //});

});
</script>

更新

   <script>
$(document).ready(function() {
    $('#calendarView').fullCalendar({
        //Options for Calendar View
        events: [
            {
                title: 'My Birthday',
                start  : '2017-01-05',
                end    : '2017-01-07'
            }  
        ],
    });

    $('#calendarList').fullCalendar({
        //Options for Calendar View
        defaultView: 'listMonth',
        events: [
            {
                title: 'My Birthday',
                start  : '2017-01-05',
                end    : '2017-01-07'
            }  
        ],
    });

});
</script>

最佳答案

您正在使用为 #calendarView 定义的日历实例覆盖为 .calendar 定义的日历实例。 #calendarView 实例中没有任何事件。这就是为什么您在 ListView 中看不到任何内容(或者可能有 javascript 错误,因为 DOM 已更改 - 请检查您的控制台)。

您无法按照您尝试的方式扩展日历。我建议将所有通用参数作为常量移动,并将它们提供给两个日历实例。除了为这两种情况初始化日历之外,还使用 ​​#calendarView 和 #calendarList

此外,您的 fullCalendar 版本是 2.2.5。 listView是在3.0.0中添加的(引用:https://github.com/fullcalendar/fullcalendar/releases/tag/v3.0.0)。因此您需要更新您的 callendar 版本。

关于javascript - fullCalendar ListView 无法显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41461640/

相关文章:

javascript - 当窗口从顶部滚动一定距离时 div 淡入

javascript - 如果至少一个输入有值(value),则启用按钮(或任何元素)

javascript - 触摸不适用于 Twitter Bootstrap 模板中的移动浏览器

javascript - 从 Q.all 压缩结果的最佳方式

javascript - 单元测试 Angular 5 应用程序的模拟文件列表

javascript - javascript : 'sth'++new Date 中的奇怪语法

html - 仅用于打印 View 的特定 css

html - 页面内的 Jekyll 链接

html - 如何在html中的图像上添加 Logo 和菜单

javascript - 内容可编辑在刷新时丢失其选项卡/新行