Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.06.2021, 00:13
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Подгрузка изображения через lazyload и форму на ajax
Приветствую!

Ищется рабочее решение, чтобы после сохранения контента в форме, которая отправляет контент через ajax, при возвращении подгружались фотки в lazyload?

Вот код формы:
function submitEditableModelForm(){
	
    var _form = $("#editable_model_form");
    if(_form.valid()) $.ajax({ // рони if(_form.valid()) 
        type: "POST",
        url: _form.attr('action'),
        data: _form.serialize(),
        dataType:"json",
        success: function (res) {
                if (res.code == 10000) {
                    $('.dialog_close_button').click()
                    $('.editable-page-model[data-id='+res.result.config_id+']').replaceWith(res.result.model_html)
                    addDialogEvent()
                    initSlide()
                }else{
                    layer.msg(res.message)
                }
        }
    });
}


Код lazyload:
$("img.lazyload-scroll").lazyload({
       //placeholder : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8VA8AAmkBc7YFeIIAAAAASUVORK5CYII=",
        effect: "fadeIn",
        skip_invisible : false,
       threshold : 400,	
   });


Вывод изображения:
<img class="lazyload"  data-original="/default/images/sell-violet.jpg"  placeholder="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==">


Заранее спасибо, за помощь!
Ответить с цитированием
  #2 (permalink)  
Старый 10.06.2021, 00:20
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Заработало так:
$(document).bind('DOMNodeInserted', function(e) {
....
});
Ответить с цитированием
  #3 (permalink)  
Старый 10.06.2021, 01:10
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Сообщение от Vaska Посмотреть сообщение
Заработало так:
$(document).bind('DOMNodeInserted', function(e) {
....
});
Однако такой вариант ведет себя не комфортно. Изображения, визуально, по два раза перезагружаются.

Подскажите ещё вариант?
Ответить с цитированием
  #4 (permalink)  
Старый 10.06.2021, 07:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Vaska,
информации недостаточно, что за плагин, что у вас заработало, почему img.lazyload-scroll и class="lazyload", это разные элементы или одни и теже и т.д.

Код lazyload: примерно должен быть такой
function lazy()
{
   $("img.lazyload-scroll:not(.lazy)").addClass("lazy").lazyload({
       //placeholder : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8VA8AAmkBc7YFeIIAAAAASUVORK5CYII=",
        effect: "fadeIn",
        skip_invisible : false,
       threshold : 400,
   });

}


lazy() запускать где вам надо и в строке 13.
Ответить с цитированием
  #5 (permalink)  
Старый 10.06.2021, 08:33
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

рони,
плагин ленивой загрузки использую такой Lazy Load 1.9.3 Mika Tuupola https://github.com/tuupola/lazyload

Объясню суть где использую ленивую загрузку:
есть конструктор дизайна страницы, на которой можно выбрать разные модули из имеющихся и перетаскиванием разместить на странице. По сути, в базу прописываются параметры модуля и адрес страницы, на которой размещается модуль.

Ваш вариант работает с формой отлично, однако в момент перетаскивания нового дубликата модуля, содержащего изображение на страницу, изображение не подгружается. Как-то нужно сделать, чтобы при размещении модуля, скрипт один раз модуль перезагружал.

Тот вариант, который я привел, с ним такой проблемы нет, он всё по два раза перезагружает где надо и не надо.

Последний раз редактировалось Vaska, 10.06.2021 в 11:45.
Ответить с цитированием
  #6 (permalink)  
Старый 10.06.2021, 08:38
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

Сообщение от рони Посмотреть сообщение
Vaska,
почему img.lazyload-scroll и class="lazyload", это разные элементы или одни и теже и т.д.
Я скопировал второй дубликат кода плагина, ошибся с названием класса, но сути вопроса это не меняет.
Нужный экземпляр такой же, с нужным классом.
Ответить с цитированием
  #7 (permalink)  
Старый 10.06.2021, 10:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от Vaska
однако в момент перетаскивания нового дубликата модуля, содержащего изображение на страницу,
так добавьте lazy() в стоп перетаскивания.
Ответить с цитированием
  #8 (permalink)  
Старый 10.06.2021, 11:44
Профессор
Отправить личное сообщение для Vaska Посмотреть профиль Найти все сообщения от Vaska
 
Регистрация: 08.05.2017
Сообщений: 178

рони,
теперь при перезагрузке страницы не грузятся фотки.

Такой вариант правильно работает в любых условиях, в моём случае:
$(document).on('DOMNodeInserted', '#scrollable', function() {
    $("img.lazyload").lazyload({
        effect: "fadeIn",
        skip_invisible : false,
        threshold : 200,
            })
      });

рони, спасибо за участие!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обновить часть страницы через js или ajax или jquery? bridun Общие вопросы Javascript 1 08.08.2019 14:21
Возврат значения из Php файла при работе через ajax shiva Javascript под браузер 5 06.08.2019 08:00
Перестает работать галерея при загрузке через Ajax (Need help) Clodan jQuery 0 20.04.2015 20:18
FancyBox как отправлять форму через Ajax ? Cutter jQuery 3 16.03.2015 17:42
Подгрузка JS + ajax... afr0 AJAX и COMET 8 10.04.2013 14:38