Events 在Agenday视图中过滤事件的完整日历问题(仅工作一次,则不存在更多事件)

Events 在Agenday视图中过滤事件的完整日历问题(仅工作一次,则不存在更多事件),events,filter,fullcalendar,Events,Filter,Fullcalendar,我在筛选事件时遇到问题: 我在Agenday视图中使用FullCalendar 我使用下拉列表选择驱动程序 我将它作为事件对象属性的名称与所选值进行比较 这部分没问题 那么 我删除所有事件。完整日历“删除事件”; 添加特定事件 “添加渲染效果”目前可能不起作用 现在我的问题出现了: 但是,当我选择另一个“驱动程序”时,由于之前的“removeEvents”操作,事件将消失,这是它第一次起作用 那么,我该如何解决这个问题呢?我只能显示过滤后的事件,而将其他实际所有的事件再次过滤第二次、第三次n次

我在筛选事件时遇到问题:

我在Agenday视图中使用FullCalendar 我使用下拉列表选择驱动程序 我将它作为事件对象属性的名称与所选值进行比较 这部分没问题 那么

我删除所有事件。完整日历“删除事件”; 添加特定事件

“添加渲染效果”目前可能不起作用

现在我的问题出现了:

但是,当我选择另一个“驱动程序”时,由于之前的“removeEvents”操作,事件将消失,这是它第一次起作用

那么,我该如何解决这个问题呢?我只能显示过滤后的事件,而将其他实际所有的事件再次过滤第二次、第三次n次

然而,这是第一个想法,它把所有的东西都带回来,选定的问题被翻倍等等


我非常感谢您的每一个提示。

好的,我想您可以用fullCalendar的功能解决您的问题

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

来自events.json的事件应该具有类似“driver\u id”的属性

我会选择字段而不是下拉菜单,选项键是驱动ID、值-名称或其他。假设它的id是“driver\u 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' );
});

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

+比较属性var selEvents=$+id.fullCalendar'clientEvents',functionevt{return evt.driver==oSelDriver.driver;};*添加特定事件:var selEvents.forEachfunctionselEvent{var\u selEvent=new Array;_selEvent['id']=selEvent.id;_selEvent['title']=selEvent.title;_selEvent['start']=selEvent.start;_selEvent['end']=selEvent.end;$+id.fullCalendarrenderEvent,_selEvent,true;};我会将“驱动程序”参数添加到活动选定下拉列表中的事件请求查询中,并在更改时重新蚀刻事件。这样,就没有理由专门处理eventsremove、add,因为您的函数将只返回您想要显示的事件。很抱歉,mock/events.json?driver=miller->all events w/proberty==“miller”是不可能的。没有使用php
$("#driver_select").off('change').on('change', function() {
     $("#calendar").fullCalendar( 'refetchEvents' );
});