【问题标题】:Full calendar breaks on view switch视图切换上的完整日历中断
【发布时间】:2017-03-11 11:22:42
【问题描述】:

每当我在 fullcalendar 上切换月份时,我都会收到以下错误消息

Uncaught TypeError: specialTokens[fakePart.substring(...)] is not a function

我的所有活动都会从日历中消失。

我正在尝试在更改月份时重新呈现我的事件,但我不断收到错误消息并且它不会重新加载我的事件。

Javascript

var events = <?php echo $eventsArray ?>;
var blocked = <?php echo $blockedArray ?>;
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
console.log(blocked);
for (var i = 0; i < Object.keys(blocked).length; i++) {
 console.log(blocked[i].date);
}
$('#democalendarfull').fullCalendar({
 header: {
  left: 'prev,next today',
  center: 'title',
  right: 'month,basicWeek,basicDay'
 },
 viewRender: function(view, element) {
  $('#democalendarfull').fullCalendar( 'rerenderEvents' );
 },
  editable: false,
  aspectRatio: 2,
  droppable: false,
  events: events,
  dayRender: function (date, cell) {
  var today = new Date();
   if (date._d.getDate() === today.getDate()) {
    cell.css("background-color", "red");
   }
  }
});

HTML

<div id="democalendarfull" class="mb">
                  <div class="panel green-panel no-margin">
                      <div class="panel-body">
                          <div id="date-popover" class="popover top" style="cursor: pointer; disadding: block; margin-left: 33%; margin-top: -50px; width: 175px;">
                              <div class="arrow"></div>
                              <h3 class="popover-title" style="disadding: none;"></h3>
                              <div id="date-popover-content" class="popover-content"></div>
                          </div>

                             //JAVASCRIPT IS INSIDE HERE

                      </div>
                  </div>
              </div>

PHP

$results= $db->query("SELECT * FROM mytable");
                            $events = array();
                            while($fetch = mysqli_fetch_assoc($results)){
                              $e = array();
                              $e['id'] = $fetch['id'];
                              $e['title'] = $fetch['title'];
                              $e['start'] = $fetch['start'];
                              $e['end'] = $fetch['end'];
                              $e['url'] = $fetch['url'];
                              array_push($events, $e);
                            }
                            $eventsArray = json_encode($events);

我的事件都在加载并且在页面加载时工作正常,但是当我循环几个月时,我收到错误消息并且它中断了!我不知道我是不是用错了,但无论我做什么,我都无法让它保持我的活动!

【问题讨论】:

    标签: javascript php jquery html fullcalendar


    【解决方案1】:

    升级 fullCalendar 后我遇到了同样的问题,我花了一点时间才弄清楚,因为近一年来一切正常,而且我过去升级 fullCalendar 没有任何问题,出于某种原因,我不得不包括 @ 987654323@ 在我使用 fullCalendar 的页面中,请参阅我运行一个 MVC 站点,之前母版页 (_layout.cshtml) 引用了moment.js,现在不确定为什么它不再起作用,只是作为测试我在使用 fullCalendar 的实际页面中添加了对时刻的引用,我遇到的事件问题以及日历标题中的 undefined 的另一个问题都消失了。

    在我的情况下,解决方法是:

    @Scripts.Render("~/bundles/dates") 
    

    在你的情况下,它可能只是:

    <script src='//cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js'></script>
    

    如果您的问题不是您可能想尝试使用回调的时刻的参考,documentation 会提到这一点,但我看不到您在使用它:

    尝试:

    callback($events);
    

    【讨论】:

    • 我的问题类似,只是当我尝试将日历放在 Bootstrap 模式中时出现错误。通过在每次打开模式时加载 moment.min.js 和 fullcalendar.js 来修复它(利用缓存来节省网络资源...fullcalendar.js 大约为 600kb stackoverflow.com/a/12885561/2969615
    猜你喜欢
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    相关资源
    最近更新 更多