fullcalendar 多个日历,如何点击prev/next所有日历

fullcalendar multiple calendars, how to click prev/next for all calendars

所以我在这个项目中使用了 fullcalendar,在同一页面上有多个日历,每个日历都有自己的 prev/next/today 按钮。我想要完成的是,当单击 prev/next 时,它会为页面上的所有日历触发,而不仅仅是它所关联的日历(如果有意义的话)。我尝试使用 jQuery 来完成此操作,因为它们具有相同的 class 名称,下面是我尝试过但效果不佳的点击功能示例。

$(".fc-next-button").click(function (i) {
        var nextBtn = $('.fc-next-button');
        //alert(nextBtn.length);
        for (var i = 0; i < nextBtn.length; i++) {
            nextBtn[i].click();
        }
    });

例如,我有五个日历,当我单击下一步时,该功能会导致当前日历提前 5 周,而不是所有日历。任何帮助将不胜感激。

发生这种情况是因为您的循环点击了全部“下一步”按钮。这实际上意味着无论你点击哪个,都会被点击两次——一次是你手动点击的,一次是代码点击的。此外,点击事件会被一遍又一遍地调用,因为每次调用“点击”时它都会再次触发事件处理程序。

更好的方法是找出按钮属于哪个日历,然后在除那个日历之外的所有日历上调用 fullCalendar 的 next 方法。像这样:

  $(".fc-next-button").click(function () {
    var calendar = $(this).closest(".calendar");
    $(".calendar").not(calendar).fullCalendar('next');
  });

$(".calendar") 位假设您的所有日历元素都有一个共同的 class 属性,如本演示中所示:https://codepen.io/ADyson82/pen/OJVMPVy?editable=true&editors=001