Поиск динамически созданного элемента jQuery

100
21 августа 2019, 03:20

Есть функция в которой при загрузке скрипта перебираюся все

$("#groups input[type=button]") // где input созданны динамически

Как мне найти динамически созданный элемент посредствами jQuery?! Делал это и раньше, только тогда были события click или change.
А мне нужен перебор без никаких действий от пользователя, сразу при загрузке.

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

$(function () { 
    //... 
    AdaptiveFilter();     // здесь НЕ работает поиск динамических элементов 
    $(window).resize(function() { 
        AdaptiveFilter(); // здесь работает поиск д.э 
    }); 
    //... 
});
И Код функции:

function AdaptiveFilter() { 
        if ($(window).width() > 750) { 
            var rowWidth = $("#groups").width(); 
            var countItems = Math.floor(rowWidth / (200 + 5)); 
            var inputOrder = -1; 
            var detailsOrder = 0; 
             
            $("#groups input[type='button']").each(function() { 
                if (($(this).index()/2) % countItems == 0) { 
                    inputOrder += 2; 
                } 
                else { 
                    inputOrder++; 
                } 
                $(this).css("order", inputOrder); 
                }); 
            $(".details").each(function() { 
                if((($(this).index()-1)/2) % countItems == 0) { 
                    detailsOrder += countItems + 1; 
                } 
                $(this).css("order", detailsOrder); 
            }); 
            $(".details").width(countItems * 200); 
        } 
        else { 
            $(".filterCategory").children().each(function() { 
                $(this).css("order", 0); 
            }); 
            $(".details").width("100%"); 
        } 
    }

Answer 1

Элементы, которые не находит первый вызов AdaptiveFilter();, создаются позднее. Было бы странно, если бы нашлись элементы, которых еще нет.

В коде вопроса не хватает стрелочки со словами "Динамические элементы создаются здесь!"

function AdaptiveFilter() {
  console.log('$("#groups input[type=button]").length = ', $("#groups input[type='button']").length); 
  // что выводится в консоль браузера?
  ...
READ ALSO
Некорректно работает responsive в slick-slider в chrome и opera

Некорректно работает responsive в slick-slider в chrome и opera

Задала брейкпойт 768px чтобы показывалось 2 слайдера, но это срабатывает при разрешении экрана 687px в ChromeВ браузераx Microsoft Edge и Firefox все нормально...

85
При переключении вкладок в Avalondock возникает System.NullReferenceException

При переключении вкладок в Avalondock возникает System.NullReferenceException

При переключении вкладок периодически возникает SystemNullReferenceException К примеру, если переключаться между вкладками "Компоненты" и "Импортированные...

112
Cannot use a lambda expression as an argument в представление razor

Cannot use a lambda expression as an argument в представление razor

В aspnet core передал вот эту модель в view

116