fullcalendar 在视图更改时执行某些操作

dpa*_*has 7 javascript onchange view fullcalendar

当视图改变时我需要做一些事情。例如,当从月转到议程日时。

没有任何想法。有什么想法吗?

viewRender:(function() {

                var lastViewName;
                return function(view) {

                    var view = $('#calendar').fullCalendar('getView');
                    alert('The new title of the view is ' + view.title);
                }
            }),
Run Code Online (Sandbox Code Playgroud)

viewRender:(function(view) {
                var view = $('#calendar').fullCalendar('getView');
                alert('The new title of the view is ' + view.title);
            }),
Run Code Online (Sandbox Code Playgroud)

Wil*_*low 10

在 FullCalendar 5 中,这似乎是datesSethttps ://fullcalendar.io/docs/datesSet


小智 5

正如@Willow(谢谢)所指出的,接受的答案在版本 5x 中不起作用。

viewRendereventAfterAllRenderdatesRender在版本 5 中都已过时和中断。下面是我发现的一些FullCalendar文档,列出了每个版本的重大更改。

DatesSet是要使用的属性。截图来自版本。5 文档: 在此输入图像描述

以您的代码示例为例,下面对我有用。万一对别人有好处。

// version 5.11.0 based code
document.addEventListener('DOMContentLoaded', function() {
  var calendarEl = document.getElementById('calendar');
  var calendar = new FullCalendar.Calendar(calendarEl, {
    ...
    datesSet: function (dateInfo) {
        var view = dateInfo.view;
        alert('The new title of the view is ' + view.title);
    },
    ...
  });

  calendar.render();
});
Run Code Online (Sandbox Code Playgroud)


sli*_*oad 3

代码中的小错误。您希望 中的函数()返回另一个函数,但它没有运行。正确的形式是:

(function() {
    return function(){...};
})(); //extra parentheses run the function
Run Code Online (Sandbox Code Playgroud)

这称为自执行匿名函数


当您执行以下操作时,您的代码将起作用:

viewRender: (function () {
    var lastViewName;
    return function (view) {
        var view = $('#calendar').fullCalendar('getView');
        alert('The new title of the view is ' + view.title);
    }
})(),
Run Code Online (Sandbox Code Playgroud)