mSearch2 при ajax подргузке товаров, не грузится слайдер для погрузившихся товаров.

Приветствую всех!
Подскажите плиз кто сталкивался с подобным как решили или может есть мысли какие-то как решить данную проблему. Не работает подгрузка слайдера msGallery в превью товара когда подгружаю через Ajax.

Вывожу товары вот так:

[[!mFilter2?
                        &limit=`999`
                        &parents=`38`
                        &element=`msProducts`
                        &tpls=`tpl.msProducts.row.common-load`
                        &includeThumbs=`small`
                        &includeContent=`1`
                        &class=`msProduct`
                        
                        &optionFilters=`{
											"status-public:LIKE":"в продаже"
										}`
                        &sort=`createdon:desc`
                        &tplOuter=`tpl.filter-out.common-admin`
                        &aliases=`
                            msoption|object_type==object_type,
                            
                        `
                        &filters=`
                            
                            msoption|object_type:checkbox,
                            msoption|street-name:checkbox,
                            msoption|cian-on:checkbox,
                            msoption|avito-on:checkbox,
							msoption|adstatus_avito:checkbox,
							msoption|ServicesEnum:checkbox,
							
							msoption|ipoteka:checkbox,
							
							msoption|bedroom:checkbox,
							msoption|decoration:checkbox,
							
							msoption|in-home:checkbox,
							createdby:fullname,
                        `
                        &tplFilter.outer.msoption|object_type=`tpl.mFilter2.filter.outer5-type-objects2`
                        &tplFilter.outer.msoption|street-name=`tpl.mFilter2.filter.outer5-street`
                		&tplFilter.row.msoption|street-name=`tpl.mFilter2.filter.checkbox5-street`
                        &tplFilter.outer.msoption|adstatus_avito=`tpl.mFilter2.filter.outer2_avito`
                        &tplFilter.row.msoption|adstatus_avito=`tpl.mFilter2.filter.checkbox2_avito`
						
						&tplFilter.outer.msoption|ServicesEnum=`tpl.mFilter2.filter.outer2_cian`
                        &tplFilter.row.msoption|ServicesEnum=`tpl.mFilter2.filter.checkbox2_cian`

						&tplFilter.outer.msoption|ipoteka=`tpl.mFilter2.filter.outer2-ipoteka`
						&tplFilter.row.msoption|ipoteka=`tpl.mFilter2.filter.checkbox2-ipoteka`
						
						&tplFilter.outer.msoption|bedroom=`tpl.mFilter2.filter.outer4`
                		&tplFilter.row.msoption|bedroom=`tpl.mFilter2.filter.checkbox4`
						
						&tplFilter.outer.msoption|decoration=`tpl.mFilter2.filter.outer2`
                		&tplFilter.row.msoption|decoration=`tpl.mFilter2.filter.checkbox2`

						&tplFilter.outer.msoption|in-home=`tpl.mFilter2.filter.outer2_home`
                        &tplFilter.row.msoption|in-home=`tpl.mFilter2.filter.checkbox2_home`
                        
                        &tplFilter.outer.msoption|cian-on=`tpl.mFilter2.filter.outer2_cian-on`
                        &tplFilter.row.msoption|cian-on=`tpl.mFilter2.filter.checkbox2`
                        
                        &tplFilter.outer.msoption|avito-on=`tpl.mFilter2.filter.outer2_avito-on`
                        &tplFilter.row.msoption|avito-on=`tpl.mFilter2.filter.checkbox2`
                        
                        &ajaxMode=`scroll`
                      
                        &maxLimit=`10`
                        &filterOptions=`{
                            "more_tpl": "<button class=\"btn btn-default btn_more btn-see-more items-middle\"><span class=\"flaticon-add-3\"></span>
 <span>Показать еще</span></button>",
                            "selected_tpl": "<a href=\"#\" data-id=\"_id_\" class=\"mse2_selected_link search-hashtags-item flex items-middle\"><div class=\"title\">_title_</div><div class=\"small-close\"></div></a>",
                            "selected_wrapper_tpl": "",
                            "selected_filters_delimeter": "",
                            "selected_values_delimeter": ""
                        }`
                        
                    ]]
В чайке вывожу слайдер через msGallery. В первичных результатах все отображается и работает нормально, когда подгружаю через Ajax вот так &ajaxMode=`scroll` или вот так &ajaxMode=`default`, слайдер перестает работать в погрузившихся результатах. Это же касается и вывода iframe в модальном окне вызовом по ссылке, ситуация идентичная. Куда посмотреть? Что упустил или как исправить?
Спасибо, хорошего всем дня!
Michael
09 июня 2022, 12:42
modx.pro
1 215
-2

Комментарии: 9

Евгений Webinmd
09 июня 2022, 12:55
+1
Смотреть в документацию и перезапускать ваши скрипты после срабатывания фильтров
    Michael
    09 июня 2022, 22:46
    0
    Спасибо за ответ. Подскажите, мне необходимо что-то дописать в js файл чтобы перезапускать скрипты после срабатывания фильтров? Или по документации внести какую-то настройку в mFilter2?
      Артур
      09 июня 2022, 23:36
      2
      0
      Да, вам нужно перезапускать скрипт слайдера после загрузки результатов фильтрации
      $(document).on('mse2_load', function(e, data) {
         // вот тут нужно перезапустить скрипт управляющий слайдером
      });
        Michael
        11 июня 2022, 21:49
        0
        Можете помочь? Подсказать что писать в закомментировали вами строчке. В js не силён совсем. Путь есть к скрипту например.
        <script src=“/assets/js/script.js”></script>
        Если не сложно. Спасибо большое за ответы.
          Артур
          11 июня 2022, 22:25
          0
          Нужно открыть документацию к слайдеру и найти метод отвечающий за его перезапуск. Потом вместо комментария вставить вызов этого метода на каждом слайдере.
            Michael
            15 июля 2022, 17:39
            0
            Ок. Тогда на примере.
            У меня слайдер tiny-slider
            Я в каждом чанке слайдера товара создаю скрипт
            <script>
            $(document).on('mse2_load', function(e, data) {
              updateSliderHeight: updateInnerWrapperHeight(),
            });
            </script>

            Понимаю что это бред, который не работает в данный момент. Но пытаюсь нащупать истину.
            Поправьте меня пожалуйста.
              Константин
              11 августа 2022, 14:31
              0
              Здравствуй, удалось решить?
                Michael
                11 августа 2022, 14:35
                0
                Здравствуйте, нет. Самостоятельно попробовал все способы какие считал максимально подходящими, не заработало. Никто так и не показал наглядного примера как это сделать. Если решите, буду благодарен за подсказку.
                  Константин
                  11 августа 2022, 15:58
                  0
                  На моем сайте установлен slick slider, я просто перед закрывающим тегом body вызываю 2 раза так:

                  /* Несколько slick слайдеров на одной странице */
                  $('.led-grid').each(function(){
                      /* Основной слайдер */
                      $(this).find('.slider-for').slick({
                        slidesToShow: 1,
                      slidesToScroll: 1,
                      arrows: false,
                      fade: true,
                        autoplay: true,
                        autoplaySpeed: 8000,
                        asNavFor: $(this).find('.slider-nav'),
                        dots: false
                      });
                  
                      /* Связанный слайдер */
                      $(this).find('.slider-nav').slick({
                       slidesToShow: 3,
                      slidesToScroll: 1,
                        asNavFor: $(this).find('.slider-for'),
                         dots: false,
                      centerMode: true,
                      focusOnSelect: true,
                      arrows : false
                      });
                    });
                  </script>
                    
                  <script>
                    /* Несколько slick слайдеров на одной странице совместно с фильтрами и пагинацией*/
                  $(document).on('mse2_load', function(e, data) {
                    $('.led-grid').each(function(){
                      /* Основной слайдер */
                      $(this).find('.slider-for').slick({
                        slidesToShow: 1,
                      slidesToScroll: 1,
                      arrows: false,
                      fade: true,
                        autoplay: true,
                        autoplaySpeed: 8000,
                        asNavFor: $(this).find('.slider-nav'),
                        dots: false
                      });
                  
                      /* Связанный слайдер */
                      $(this).find('.slider-nav').slick({
                       slidesToShow: 3,
                      slidesToScroll: 1,
                        asNavFor: $(this).find('.slider-for'),
                         dots: false,
                      centerMode: true,
                      focusOnSelect: true,
                      arrows : false
                      });
                    });
                  });
                  </script>
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    9