Задать вопрос
@AVEN1Q
css js php

Bxslider после ajax?

Доброго времени суток. Ребят, выручайте, уже не знаю что делать

Есть объект . На онлоаде вызываю Sliders.init(). Все нормально. После того как блок с корзиной перезаливается, обновляю содержимое magnificPopupa - это работает, и заново инициализирую переменную со слайдером
this.cardSlider = this.popupSlider.bxSlider({...})
(который в корзине нужен, чтобы товары листать) - это не работает.

Пробовал и reloadSlider(), и destroySlider() - но в общем нужно все-таки переинициализировать сам слайдер.

Кажется все перепробовал, должно быть какое-то решение, но не могу никак понять где ошибка.

Спасибо.

var Sliders = (function (){
    
        var mod = {};
       
        mod.mp = null;//magnificPopupInstance
        mod.cardSlider = null;//PopupSlider
        mod.popupOpen = null;
        mod.popupSlider = null;
        
        mod.init = function(){
            
            var _this = this;
            
            this.popupOpen = $('.bx-basket');
            this.popupSlider = $(".popupSlider");
            this.loadPopupSlider();
            this.loadMagnific();
            this.mp = $.magnificPopup.instance; //for cart.line script.js
            
            $(document).on("click",".popup_close,.cart_back_link", function(){
                 _this.mp.close();
            });
            
        };
        
        mod.loadPopupSlider = function(){
             this.cardSlider = this.popupSlider.bxSlider({
                pager: false,
                controls: true,
                mode: 'vertical',
                onSliderLoad: function(){
                      //$(".bx-controls").detach();
                }
            });
        };
        
        mod.loadMagnific = function(){
            var _this = this;
            this.popupOpen.magnificPopup({
                delegate: "a.popupOpen",
                type: 'inline',
                midClick: true,
                showCloseBtn: false,
                callbacks: {
                    open: function () {
                        _this.cardSlider.reloadSlider();
                    }
                }
            });
        }; 
        
        mod.afterAjax = function(){
           
           this.mp.updateItemHTML();
           this.loadPopupSlider();
        };   

    return mod;
    
})();
  • Вопрос задан
  • 271 просмотр
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы