在Fullcalendar中动态过滤数据时出现问题

时间:2019-09-12 14:04:40

标签: jquery

我正在使用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调试屏幕中也没有显示任何异常,但是它没有过滤任何内容,日历为空白 非常感谢您的帮助

1 个答案:

答案 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();
}