Фильтр полного календаря Jquery - не полностью понимать заявление - PullRequest
0 голосов
/ 12 ноября 2018

Я нашел то, что мне нужно из этой записи , но не до конца понимаю, почему я не могу изменить утверждение:

return ['all', event.school].indexOf($('#school_selector').val()) >= 0

, чтобы найти отображаемое текстовое значение выбора, используя:

return ['all', event.EventType].$("#TypeList option:selected").text() !== '';

Когда я выполняю свое заявление, я ничего не получаю за сетку календаря (только заголовок).Похоже, следовал той же логике, если выделенный текст не пуст, вернуть true и выполнить сортировку для X.

Я в настоящее время использую статические демонстрационные события из примера кода календаря, пока я работаю надэта проблема фильтра.Я видел несколько других способов сделать это, удалив и добавив источники событий, но это выглядит как более простая и быстрая (без всех циклов) фильтрация.

Спасибо,

Dave

1 Ответ

0 голосов
/ 12 ноября 2018

Вам нужно написать это так:

return ['all', event.EventType].indexOf($("#TypeList option:selected").text()) >= 0

Поскольку у вас, похоже, возникают проблемы с пониманием синтаксиса, давайте напишем эту длинную руку:

var event = { "EventType": "XYZ" }; //dummy event data

var arr = ['all', event.EventType]; //an array, which now contains two items = "all" and "XYZ"

var selectedText = $("#TypeList option:selected").text(); //let's assume the selected text is "XYZ"

var locatedIndex = arr.IndexOf(selectedText); //return the index where "XYZ" appears in the array, if any. As we can see, it should return 1, as it matches the item at the 2nd index (arrays being zero-indexed)

//now check whether the index was 0 or more (i.e. we found the item. It will output -1 if it didn't find it). 
//If we found it, return true. If not, return false.
if (locatedIndex >= 0) { return true; }
else { return false; }

Я надеюсьэто помогает понять, что на самом деле делает это утверждение.

...