在客户端过滤FullCalendar事件

时间:2015-10-28 13:46:32

标签: javascript jquery fullcalendar


我正在使用this answer来过滤客户端的事件。

它适用于较新的事件,但我无法过滤从JSON加载的事件。

这是我的JS代码:

complete -F _longopt /home/me/bin/x
complete -F _longopt /home/me/bin/y

和HTML:

$(document).ready(function() {
    var idEspacoFisico=$('#seleciona option:selected').val();
    $("#calendar").fullCalendar({
        events: 'eventos/getEventos.json',//can't filter these
        eventRender: function eventRender( event, element, view ) {
            //from the answer.
            return ['0',event.espacoFisico].indexOf($('#seleciona option:selected').val()) >= 0
        },
        select: function(start, end){
            //When created here, I can use the the eventRender to filter.
        }
    });
    $('#seleciona').change(function(){
        $("#calendar").fullCalendar('rerenderEvents');
    });
});
我错过了什么? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

我找到了答案。我使用.change()来做过滤器。 我还删除了'事件'和' eventRender'来自.fullCalendar以避免冲突。

$(document).ready(function() {
var idEspacoFisico=$('#seleciona option:selected').val();
$("#calendar").fullCalendar({
    select: function(start, end){
    ...
    }
});
$('#seleciona').change(function(){
    $("#calendar").fullCalendar('removeEvents');//remove the old filtered events
    var idEspacoFisico=$('#seleciona option:selected').val();//filter based on the select value
    $.ajax({
        type:"POST",
        url:'eventos/getEventos.json', //get events
        success: function(data){
            $.each(data,function(index,value){//for each event, I will compare the value with the filter, if true, render it.
                if(value.espacoFisico==idEspacoFisico){
                    $("#calendar").fullCalendar('renderEvent', value, true);
                }
            })
        }
    });
});
});