$.each(mappings, function(key, item) {
if (match(selected_values, item)) {
$(key).show("slow");
} else {
$(key).hide("slow");
}
});
//At this point, all items are still visible!
var item_count = $('.item').filter(':visible').length;
if (item_count < 12) {
$('.item').not(':visible').slice(0,12 - item_count).show();
}
Я повторяю структуру данных, и в зависимости от некоторых выбранных атрибутов некоторые элементы скрыты, а другие показаны.
Проблема в том, что клиент запрашивает минимум видимых элементов. Таким образом, даже если фильтрация работает правильно, и я получаю число из 3 видимых элементов, они должны быть дополнены еще 9 элементами, чтобы всегда отображалось как минимум 12.
Теперь, после каждой итерации, оказывается, что функции .show()
и .hide()
еще не завершены. Как и где я могу правильно применить функции заполнения?
Я проверил Вызов функции jQuery после завершения .each(), но он применяет функцию после каждого .show()
или .hide()
, а это не то, что я хочу (недопустимо дополнять во время итерации, сначала нам нужно скрыть все, что не применяется).
Этот: выполнить обратный вызов после jquery каждой итерации не работает, когда вызывается функция, у меня та же проблема (show() и hide() не завершены).
EDIT: я только что узнал, что удаление атрибута "slow" в методах .show()
и .hide()
решает проблему. А что, если я хочу сохранить анимацию?