Я работаю над страницей, которая отображает и скрывает элементы на основе фильтров, то есть устанавливает элементы списка в display:block
или display:none
на основе критериев - и я хотел бы отобразить сообщение, когда нет товаров которые показываются (например, «извините, ни один из элементов не соответствуют вашим критериям».) Если мой список выглядит следующим образом:Функция изменения jQuery для скрытых дочерних элементов
<ul class="list">
<li class="item">Item 1</li>
<li class="item">Item 2</li>
<li class="item">Item 3</li>
</ul>
Я пробовал функцию следующих change
на основе этого SO thread:
$("body").on('change', function() {
if ($('.list').children(':visible').length == 0) {
console.log('none visible');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="list">
<li class="item">Item 1</li>
<li class="item">Item 2</li>
<li class="item">Item 3</li>
</ul>
Но он, похоже, не работает? Любая помощь здесь очень ценится.
Я думаю, что нет ничего, что запускает слушателя вашего мероприятия. Когда тело меняется? Я думаю, что вы хотите показать это, когда страница загружена, поэтому просто удалите '$ (" body "). On ('change', function() {' wrapper. – vaso123
@karacsi_maci Я использую прослушиватель событий, потому что элементы в '.list' динамически фильтруются (устанавливаются на' display: none' или 'display: block') в разных вариантах выбора ... – nickpish
как будет происходить событие изменения, если все параметры списка скрыты? –