pdoPage и скрипт Lightgallery
Есть галерея с видеороликами — каждый ролик — отдельный документ modx
при нажатии на постер — видео открывается в отдельном окне с помощью Lightgallery
при использовании ajax пагинации — при переходе на следующую страницу скрипт Lightgallery работать перестает — при клике на постер видео не открывается во всплывающем окне
В чем причина?
Вызов pdoPage
test.hograllyminsk.com/gallery/
раздел Видео
при нажатии на постер — видео открывается в отдельном окне с помощью Lightgallery
при использовании ajax пагинации — при переходе на следующую страницу скрипт Lightgallery работать перестает — при клике на постер видео не открывается во всплывающем окне
В чем причина?
Вызов pdoPage
<div id="pdopage">
<div class="rows">
<div id="video-thumbnails">
[[!pdoPage?
&limit=`4`
&pageLimit=`7`
&totalVar=`total`
&pageVarKey=`page`
&pageNavVar=`page.nav`
&ajaxMode=`default`
&tpl=`video`
&parents=`9`
&includeTVs=`img`
&tplPageWrapper=`@INLINE <ul class="pagination add-bottom">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul>`
&tplPageFirst=``
&tplPageFirstEmpty=``
&tplPageLast=``
&tplPageLastEmpty=``
&tplPagePrev=`@INLINE <li class="prev"><a href="[[+href]]"></a></li>`
&tplPagePrevEmpty=`@INLINE <li class="prevempty"><span></span></li>`
&tplPageNext=`@INLINE <li class="next"><a href="[[+href]]"></a></li>`
&tplPageNextEmpty=`@INLINE <li class="nextempty"><span></span></li>`
&tplPageActive=`@INLINE <li><span class="current">[[+pageNo]]</span></li>`
]]
</div>
</div>
<div class="pagination0">
[[!+page.nav]]
</div>
</div>посмотреть тутtest.hograllyminsk.com/gallery/
раздел Видео
Комментарии: 29
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
но как именно туда вставить инициализацию?
и что делать с основной инициализацией
она выглядит так
если не сложно подскажите
я и так и так ковырял и не вышло
Да и отвлеченный вариант он хорош разве что для философских симпозиумов, а я вот не могу ничего сказать, пока конкретный пример не посмотрю. Городить же собственный пример ради чьего-то интереса — увы, есть множество других интересных вещей в моей жизни. Думаю, у других такая же ерунда.
я что то не нашел
а конкретный пример я же выше написал на свой случай где смотреть
Про Pager прямо на странице документации sachinchoolur.github.io/lightGallery/docs/api.html#lg-pager
Совместил pdoPage и Rowboat
к сожалению Rowboat не имеет возможностей объединять таблицы left join
а у галереи Asset Manager их две
ну да ладно
вытащил параметр asset_id из ass_page_assets
чанк для формирования вывода фото с увеличением выглядит так
все работает
только надо конкретно указывать
&where=`{«page_id»:10}` — откуда брать фото
теперь бы побороть отключение работы увеличителя картинок Lightgallery после перехода по страницам
ajax пагинация отрубает инициализацию Lightgallery
тут сказали надо использовать callback функцию pdoPage
но я не могу понять как в нее вставить заново эту инициализацию, в каком месте, и что делать с основным вызовом Lightgallery
если подскажете как и что вставлять для этого — будет просто здорово)
и галерея с названием ass будет не такой уж задницей)
Шутка. Поковырять тоже интересно, как самоцель.
помогите забить последний гвоздь в эту задницу)
Ща будем посмотреть подробнее, там и пагинация будет нужна)…
А мне нужна пагинация на самой странице с миниатюрами фоток или видео
собственно саму пагинацию я уже сделал с pdoPage
осталось выяснить почему режим ajax для нее отрубает lightgallery при переходе по страницам и как это пофиксить
Вот решение:
Добровольное пожертвование приветствуется =))
все скопировал к себе — результат прежний
еще и картинки постеров пропадают вдобавок
давай так свой майл тогда — раз там проблемы
При ajax-загрузке контента с помощью pdopage перестают работать скрипты слайдеров и галерей, потому что они работают только с контентом, который был загружен во время загрузки страницы. Перепробовал уже
$('body').on( 'click', '.btn-more', function() { });
и
pdoPage.callbacks['after'] = function(config, response) { };
и
$(document).ajaxSuccess(function() { };
ничто не отрабатывает правильно. При вызове обычного alert, изначально появляется модальное окно, а уже потом подгружается контент, из чего делаю вывод, что при клике по кнопке с классом .btn-more изначально загружаются скрипты, а уже потом подгружается контент с помощью ajax, с которым подгруженные скрипты уже не работают. Помогите понять как решить проблему
В примере описанном здесь используется как раз:
pdoPage.callbacks['after'] = function(config, response) { };
Но таким образом не выходит сделать. Если для теста вызвать alert, то после клика по кнопке сперва появляется окно alert'а, а уже потом подгружается контент. Мне кажется, что со скриптами происходит тоже самое. Может мне и удается их инициализировать еще раз, вот только это происходит до загрузки контента ajax'ом, а значит на подгруженный контент они уже не работают. Хотя может и ошибаюсь.
Но получилось заставить работать галерею с помощью ajaxStop. Правда тут возникла другая сложность — после подгрузки контента ajax'ом функция, которая была отработана во время изначальной загрузки страницы продолжает работать и после загрузки контента ajax'ом, при этом дублируя результаты отработки после каждого нажатия на кнопку btn-more. Пока не могу понять как обнулить результаты отработки функции и одновременно снова загрузить скрипт.