Не корректно выводится слайдер через AjaxSnippet
Добрый день!
Не корректно выводится слайдер при загрузке через AjaxSnippet. Без AjaxSnippet все работает и отображается как положено. Подскажите пожалуйста решение.
Вывожу так:
Не корректно выводится слайдер при загрузке через AjaxSnippet. Без AjaxSnippet все работает и отображается как положено. Подскажите пожалуйста решение.
Вывожу так:
[[!AjaxSnippet?
&snippet=`pdoResources`
&resources=`getTickets`
&parents=`1893`
&limit=`10`
&includeTVs=`image`
&tpl=`tpl.gallery.big`
]]На выходе получаю это:
Комментарии: 9
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Тут указано, что есть событие as_complete, которое происходит при загрузке ajaxSnippet. Попробуйте на это событие повесить инициализацию слайдера.
var slider_demo2 = $('.slider_demo2');
var slider_demo1 = $('.slider_demo1');
эти две строчки как бы принимают объекты, но т.к. у вас из-за ajaxsnippet нет объектов $('.slider_demo2'); и $('.slider_demo1'); их физечески не существует при загрузке страницы, то переменные пусты или не объявлены. Соответственно, присвоение эти переменных должно происходить в as_complete, т.е. когда ajaxsnippet загрузит данные и в странице появится slider_demo2.
Более того ваше первое условие
if ($('.slider_demo2').length > 0) {
Говорит о том что если такого объекта slider_demo2 не существует, то не выполнять этот код.
Надеюсь тут все ясно станет.
вызов сниппета:
Чанк, который отдает сниппет my_slider:
Код в футере:
Всё прекрасно отрабатывает на тестовом варианте. Значит, осталось разобраться, что именно нужно инициализировать на событие as_complete, как выше написал Константин.