全日历问题,过滤议程日视图中的事件(仅工作一次,则不再存在事件)



我在过滤事件时遇到问题:

  • 我在议程日视图中使用全日历
  • 我使用下拉列表选择驱动程序
  • 我将名称(它是事件对象的属性(与所选值进行比较(这部分还可以(

然后

  • 我删除所有事件 ( .fullCalendar('removeEvents'); (
  • 添加特定事件

  • (使用渲染事件添加目前无法正常工作(

  • 现在我的问题出现了:

  • 然而,当我选择另一个"驱动程序"时,它第一次起作用,由于之前的"removeEvents"-Action,事件消失了。

那么,我

该如何解决这个问题,我只能显示过滤后的事件并保持其他(实际上是所有事件(再次过滤第二次、第三次 n- 时间?

$('#' + id).fullCalendar('refetchEvents');

是第一个想法,然而,它把所有的东西都带回来了,选定的问题加倍了(等等(。

我很感谢每一个提示。

好的,

我认为您可以使用fullCalendar的eventRender函数解决您的问题。

该函数还可以返回 false 以完全取消事件的呈现。

来自 events.json 的事件应具有类似于"driver_id"的属性。

我会选择字段而不是下拉菜单,选项键是驱动程序 ID、值 - 名称或其他任何内容。假设它的 id 将是"driver_select"。

然后呈现如下事件:

$('#calendar').fullCalendar({
    //...
    eventRender: function(event, element) {
        //driver select should have default value assigned or else no events will be rendered
        if ($("#driver_select").val() !== event.driver_id) {
             return false; //do not render other driver events
        }
    }
    //...
});

处理要更新的选择更改

$("#driver_select").off('change').on('change', function() {
     $("#calendar").fullCalendar( 'refetchEvents' );
});

另一种方法是在时间线中显示所有驱动程序。为此,您可以使用FullCalendar Scheduler。

相关内容

  • 没有找到相关文章

最新更新