我正在使用Fullcalendar的第3版,到目前为止,一切正常,除非我想根据所应用flitro的标准过滤要显示的数据: 根据组合框的值,我尝试过滤日历中特定字段要显示的数据。 这段代码对我来说很完美:
events:'php/eventos.php',
eventRender: function eventRender( event, element, view )
{
// event.id_tratamiento
return ['all', event.id_tratamiento].indexOf($('#data_selector').val()) >= 0
},
// función combobox filtro :
$('#data_selector').on('change', function()
{
if (this.value)
{
$('#calendar').fullCalendar('rerenderEvents');
}
}
但是,如果我想动态更改要过滤的字段,那么它对我不起作用:
if(condicion==1)
{
campo=event.id_tratamiento;
}
elseif (condicion==2)
{
campo=event.id_profesional;
}
else
{
campo=event.id_tipo;
}
eventRender: function eventRender( event, element, view )
{
// event.id_tratamiento
return ['all', campo].indexOf($('#data_selector').val()) >= 0
}
或
eventRender: function eventRender( event, element, view )
{
// event.id_tratamiento
return ['all', 'id_'+campo].indexOf($('#data_selector').val()) >= 0
}
它没有显示任何错误消息,并且在Chrome调试屏幕中也没有显示任何异常,但是它没有过滤任何内容,日历为空白 非常感谢您的帮助
答案 0 :(得分:0)
对我来说,最好的选择是显示所有事件并向每个类别添加一个自定义类,使用此自定义类,您可以通过jquery隐藏和显示事件
var event={
...
className: 'category_'+idCategory,
};
$('#calendar').fullCalendar( 'renderEvent', event, true);
然后,当更改选择时,将使用jquery显示正确的类别
$('#data_selector').on('change', function() {
$('.fc-event').hide();
$('.category_'+this.value).show();
}