Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Прошу помощи с LazyLoad (https://javascript.ru/forum/events/43540-proshu-pomoshhi-s-lazyload.html)

amelinviacheslav 10.12.2013 10:52

Прошу помощи с LazyLoad
 
Если я ошибся с разделом не ругайте сильно, но мне кажется что тут самое место.
Прошу небольшой помощи с довольно тривиальным моментом.
На странице используется jquery.lazyload.min.js. Вопросов к скрипту никаких - все работает хорошо. Но как всегда есть небольшое но....
Ситуация такая:
есть таблица для аватарок и изначально

<table id="gallery_avatars" style="display:none;">


на onclick кнопки - "показать галерею" функция:

function show_gallery_avatars()
{
   if(jQuery('#gallery_avatars').css('display') == 'none')
   { 
       jQuery('#gallery_avatars').show('slow'); 
   } 
   else 
   { 
      jQuery('#gallery_avatars').hide('slow'); 
   }
}

все вроде понятно....и вот тут появляется но!
когда я нажимаю кнопку - открывается таблица с прелоадерами картинок и они не грузятся, т.к. jquery.lazyload.min.js отрабатывается только при скроллинге, а скроллинга то нету....
Мои мысли по решению ситуации следующие:
1. повесить на onclick два обработчика, первый как раньше пусть таблицу показывает, а второй актииврует lazyload, но как пишут в статьях - порядок выполнения обработчиков в такой ситуации может быть непредсказуем (хотя может оно и неважно)...да и два обработчика повесить можно уже не onclick-ом.
2. при нажатии на кнопку посылать сообщение и в lazyload-е его обрабатывать (но насколько это правильно).
3. решение в лоб - объединить функцию показывания таблицы и lazyload - работать будет, но это неправильно, т.к. lazyload нужно будет еще на других страницах использовать и получится франкенштейн.
4. воспользоваться готовым скриптом lazyload но в котором нет такой проблемы

сильно не ругайтесь если спрашиваю ерунду, просто я в яваскрипте совсем не спец, просто пришлось столкнуться и всех нюансов я пока не знаю. Может быть просто посоветуете про какие механизмы языка надо почитать чтоб попробовать найти проблему. Заранее благодарю за помощь.

рони 10.12.2013 11:31

amelinviacheslav,
- в click добавьте однократный запуск lazyload - пример из доки

рони 10.12.2013 11:41

amelinviacheslav,
из доки -- загружать невидимые картинки
Цитата:

skip_invisible : false

amelinviacheslav 10.12.2013 11:45

рони,
Спасибо за совет! 30 секунд и все заработало! а я потратил кучу времени в поисках костылей! Все гениальное просто!

amelinviacheslav 10.12.2013 11:47

рони,
поставил на click вызов - и при нажатии комплект картинок видимых на экране сразу был подгружен (интернет позволил успеть подгрузить) и показан а остальное как положено.
к сожалению очевидные вещи в языке не всегда могу увидеть....


Часовой пояс GMT +3, время: 16:25.