shopkeeper 3 ajax Всплывающее окно корзины с товаром не открывает



  • Modx revo Подскажите, Есть сайт, на нем настроен shopkeeper 3, проблема заключается в том что при добавлении товара в корзину ( а у корзины где ведётся подсчет и сумма, имеется всплывающее окно с более подробной информацией о товаре (shopCartRow_small) ). При добавлении в корзину все работает идеально, подсчет и тд, но ajax обновление сбивает открытие всплывающего окна и просто перекидывает на главную название сайта.by/#
    Как можно решить данную проблему ?

    чанк shopCart_small
    <a class="cart-link" href="#" data-shopcart="1">
    <span class="text">Корзина</span>
    <div class="mini-cart-wr" >
    <div class="mini-cart-bl">
    <span class="ms2_total_count">0</span>
    </div>
    </div>
    </a>
    <div class="js-goods"><div class="ddown-bl" style="display: none;">
    <div id="miniCart">
    <p style="text-align: center;padding: 10px;font-size: 18px;">Корзина пуста</p>
    <div class="footer clearfix">
    <div class="grid-60 grid-parent all-price">
    <strong>Итого:</strong>
    <strong class="ms2_total_cost">0.00 <small>руб.</small></strong>
    </div>
    <a class="grid-40 grid-parent pr-check" style="text-decoration: line-through;">оформить</a>
    </div>
    </div>
    </div></div>
    <!--tpl_separator-->
    <a class="cart-link" href="#" data-shopcart="1">
    <span class="text">Корзина</span>
    <div class="mini-cart-wr" >
    <div class="mini-cart-bl">
    <span class="ms2_total_count">[[+items_total]]</span>
    </div>
    </div>
    </a>
    <!-- Всплывающее окно -->
    <div class="js-goods"><div class="ddown-bl" style="display: none;">
    <div id="miniCart">
    [[+inner]]
    <div class="footer clearfix">
    <div class="grid-60 grid-parent all-price">
    <strong>Итого:</strong>
    <strong class="ms2_total_cost">[[+price_total]] <small>[[+shk_currency]]</small></strong>
    </div>
    <a class="grid-40 grid-parent pr-check" href="[[~29]]">оформить</a>
    </div>
    </div>
    </div>
    </div>

    Чанк shopCartRow_full
    <div class="cart-product">
    <div class="cart-product-header clearfix">
    <div class="grid-45 grid-parent"><a href="[[+url]]">[[+name]]</a></div>
    <div class="grid-15 hide-on-tablet hide-on-mobile">количество</div>
    <div class="grid-15 hide-on-tablet hide-on-mobile">за единицу</div>
    <div class="grid-15 hide-on-tablet hide-on-mobile">всего</div>
    </div>
    <div class="cart-product-wr clearfix">
    <div class="grid-45 tablet-grid-33 image"><img src="[[phpThumbOn? &input=inc/images/[[+images]] &options=w=120&h=81&zc=1]]"></div>
    <div class="grid-15 tablet-grid-33 count">
    <form method="post" class="ms2_form form-inline" role="form">
    <input class="shk-count input-sm form-control-1" type="text" size="2" name="count[]" maxlength="4" title="изменить количество" value="[[+count]]" />
      <small>шт.</small>
    </form>
    </div>
    <div class="grid-15 price item-1"><span>[[+price:num_format]] </span> [[+shk_currency]] </div>
    <div class="grid-15 hide-on-tablet hide-on-mobile all-price all-p-item-1"><span> [[+price_count_total:num_format]] </span> [[+shk_currency]]</div>
    <div class="grid-15 remove">
    <form method="post" class="ms2_form">
    <a title="Удалить" href="[[+url_del_item]]" class="shk-del"></a>
    </form>
    </div>
    </div>
    </div>



  • ms_total_count это точно с shk3? Если перебрасывает сразу на главную страницу после добавления товара в корзину, значит стоит в настройках что сразу открывать страницу оформления заказа (по умолчанию 1) тоисть главная, идеш сгиппеты>shopkeeper3>вкладка параметры(вроде) и там в настройках читаеш сами параметры а в докуентации их роли.



  • goToOrderFormPage - скорее всего у тебя стоит да.



  • http://unit1.olden-web.by/
    ajax обновление сбивает открытие всплывающего окна и просто перекидывает на главную



  • После добавления в корзину товара, вверху по нажатию на корзину не открывает всплывающее окно cartRowTpl - шаблон строки корзины
    Как можно исправить подскажите



  • <a class="cart-link" href="#" data-shopcart="1"> вот твоя проблема - " href="#" " ты тыкаеш на ссылку и она отправляет тебя на главную, соответственно row tpl (которыху тебя почемуто аж два одновременно появляется) не успевает сработать, поскольку ты переходиш по ссылке. сделай его дивом и будет тебе щастье, а если ты хотел курсор ручкой то cursor: pointer; тебе в помощ



  • Обернул в див, так ? а толк

    <div data-shopcart="1">
                  <a class="cart-link" href="#">
                    <span class="text">Корзина</span>
                    <div class="mini-cart-wr" >
                        <div class="mini-cart-bl">
                            <span class="ms2_total_count">[[+items_total]]</span>
                        </div>
    
                    </div>
                </a>  
    
     <div class="js-goods"><div class="ddown-bl" style="display: none;">
                    <div id="miniCart">
    [[+inner]]
    
                        <div class="footer clearfix">
                            <div class="grid-60 grid-parent all-price">
                                <strong>Итого:</strong>
                                <strong class="ms2_total_cost">[[+price_total]] <small>[[+shk_currency]]</small></strong>
                            </div>
                            <a class="grid-40 grid-parent pr-check" href="[[~29]]">оформить</a>
                        </div>
                    </div>
                </div></div> 
    </div>
    


  • Участник @doa2030 написал в shopkeeper 3 ajax Всплывающее окно корзины с товаром не открывает:

    После добавления в корзину товара, вверху по нажатию на корзину не открывает всплывающее окно cartRowTpl - шаблон строки корзины
    Как можно исправить подскажите

    Прочитай для начала про обновление DOM элемента, там есть евент DOMSubtreeModified
    Обработчик твой нем может найти обьект, т.к. он динамически изменился!
    Вот тебе пример:

    /*Отследить событие  изменение содержимого в DOM у класса div.header_new_data_cart*/
            $(".header_new_data_cart").on('DOMSubtreeModified', function () { 
                var dataBlock = $(this);
                console.log(dataBlock);//А тут у каждого своя фантазия
            });
    


  • Пожалуйста более конкретно если не трудно)
    Код запуска) Спасибо)

    $(".cart-link").click(function(e) {
    		e.preventDefault();
    		$(".ddown-bl").slideToggle('fast');
    		$(this).parent().toggleClass('active');
    		$(this).parents().siblings().removeClass('active').find(".ddown-bl").hide();
    	});
    


  • @doa2030

    /*Отследить событие  изменение содержимого в DOM у класса div.cart-link*/
            $(".cart-link").on('DOMSubtreeModified', function () { 
                $(this).click(function(e) {
    		e.preventDefault();
    		$(".ddown-bl").slideToggle('fast');
    		$(this).parent().toggleClass('active');
    		$(this).parents().siblings().removeClass('active').find(".ddown-bl").hide();
    	   });
            });
    


  • Толку нет чего то, стары код пробовал убирать, так не открывает вообще, пробовал вместе -тоже нет толку, в чанке shopcart обертку див ставил убирал.



  • @doa2030 на, проверил у тебя на сайте все пашет, при обновлении корзины DOM обновляет div..mini-cart-bl-wr смотри скрин.0_1504943454359_cart.png

    /*Отследить событие  изменение содержимого в DOM у класса div.cart-link*/
    $(".mini-cart-bl-wr").on('DOMSubtreeModified', function () { 
    		$('.cart-link').click(function(e) {
    		e.preventDefault();
    		$(".ddown-bl").slideToggle('fast');
    		$(this).parent().toggleClass('active');
    		$(this).parents().siblings().removeClass('active').find(".ddown-bl").hide();
    	});
    });
    


  • Большое спасибо.



  • А не подскажите в Mozila Firefox зацикливает из за скрипта и прыгает туда сюда. Остальные браузеры нормально работают



Последние темы

Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.