jQuery не находит элементы после их добавление через append()

137
13 марта 2019, 13:50

Есть такой код

$.each(response, function (index, object) {
                        var slide_item = '<div class="slide" style = "vertical-align: middle;">' +
                                '<img src="http:\/\/remont.qwerq.ru\/' + object.path + '">' +
                                '<span class="slide-text">' +
                                '<span class="icon icon-left-nav"></span>' + 'anything' +
                                '</span>' +
                                '</div>';

                        $('#mySlideGroup').append(slide_item);
                    });

Добавилось 3 слайда. Далее выполняется такой скрипт:

//Подгонка изображений под размер слайдера
            jQuery(function ($) {
                function fix_size() {
                    var images = $('.slide img');
                    images.each(setsize);
                    function setsize() {
                        var img = $(this),
                                img_dom = img.get(0),
                                container = img.parents('.slide');
                        if (img_dom.complete) {
                            resize();
                        } else
                            img.one('load', resize);
                        function resize() {
                            if ((container.width() / container.height()) < (img_dom.width / img_dom.height)) {
                                img.width('100%');
                                img.height('auto');
                                return;
                            }
                            img.height('100%');
                            img.width('auto');
                            //
                        }
                    }
                }
                $(window).on('resize', fix_size);
                fix_size();
            });

Примечательно, что $('.slide img'); , равно как и $('.slide');возвращает пустой объект. Не вкурю никак, помогите разобраться.

Answer 1

Судя по всему, следующая за ajax запросом функция fixsize выполнялась раньше, чем выполнялся append(). Решено путем вложения функции fixsize в функцию success ajax-запроса.

READ ALSO
Json строки в ресурсах String

Json строки в ресурсах String

Хочу ввести в приложение локализацию (новые языки: Анг, Рус, Латинь), но у меня RecycleViewAdapter берет строки с файла json как прописать в скрипте не саму...

173
Защитить &lt;html&gt; от remove()

Защитить <html> от remove()

У меня есть html страница со скриптом следующего содержания -

148
Железнодорожные сообщения Maps API

Железнодорожные сообщения Maps API

Реализую информационную систему ж/д перевозок

178