Я думаю, это то, к чему вы стремитесь. Лучше всего это можно проверить, выбрав школу 2, а затем переключаясь между колледжем 1 и 2 (и всеми) и наблюдая, какие события отображаются и скрываются.
Ваша проблема заключалась в переменной "current_action", которая вызывала только один фильтр для работы за раз. Другие операторы if
внутри eventRender также были проблемой, потому что они также не позволяли запросу indexOf (который содержит параметр «все») возвращать полезный результат.
После того, как вы упростили его, удалив весь этот шум, вы можете просто объединить результаты обоих запросов indexOf и отображать только те события, которые соответствуют обоим условиям (т. е. соответствуют критериям, установленным обоими раскрывающимися списками).
$('#mycalendar').fullCalendar({
defaultDate: '2015-05-01',
events: [{
title: 'Event 1',
start: '2015-05-01',
school: '10',
college: '1'
},
{
title: 'Event 2',
start: '2015-05-02',
school: '2',
college: '1'
},
{
title: 'Event 3',
start: '2015-05-03',
school: '1',
college: '1'
},
{
title: 'Event 4',
start: '2015-05-04',
school: '2',
college: '2'
}
],
eventRender: function eventRender(event, element, view) {
var school = ['all', event.school].indexOf($('#school_selector').val()) >= 0;
var college = ['all', event.college].indexOf($('#college_selector').val()) >= 0;
return (school && college);
}
});
$('#school_selector').on('change', function() {
$('#mycalendar').fullCalendar('rerenderEvents');
})
$('#college_selector').on('change', function() {
$('#mycalendar').fullCalendar('rerenderEvents');
})
<head>
<link rel='stylesheet' href='https://fullcalendar.io/js/fullcalendar-3.1.0/fullcalendar.min.css' />
</head>
<body>
<div id='calendar'></div>
<script src='https://fullcalendar.io/js/fullcalendar-3.1.0/lib/moment.min.js'></script>
<script src='https://fullcalendar.io/js/fullcalendar-3.1.0/lib/jquery.min.js'></script>
<script src='https://fullcalendar.io/js/fullcalendar-3.1.0/lib/jquery-ui.min.js'></script>
<script src='https://fullcalendar.io/js/fullcalendar-3.1.0/fullcalendar.min.js'></script>
<select id="school_selector">
<option value="all">All</option>
<option value="1">School 1</option>
<option value="2">School 2</option>
<option value="10">School 10</option>
</select>
<select id="college_selector">
<option value="all">All</option>
<option value="1">College 1</option>
<option value="2">College 2</option>
</select>
<div id="mycalendar"></div>