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


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 зацикливает из за скрипта и прыгает туда сюда. Остальные браузеры нормально работают

 

Последние комментарии

  • У меня почему то не получилось прикрутить эту штуку.

    Что конкретно не получилось? Какие-то ошибки?

    Там вроде как зависимость от компонента http://angular-ui.github.io/bootstrap/
    Но вроде он и используется, но, возможно, какая-то старая версия.

    Читать далее
  • N

    @Andchir Спасибо, но это немного не то.
    Задача такая - менеджер должен выставлять промежуток времени, когда клиенту удобно принять доставку.
    Т.е. надо прикрутить что то типа этого https://rgkevin.github.io/datetimeRangePicker/#/home
    Чтобы можно было выбирать и вилку дней и промежуток по времени.
    У меня почему то не получилось прикрутить эту штуку.

    По сохранению сложностей не возникло, т.е. проблема только с UI

    Читать далее
  • https://github.com/andchir/shopkeeper3/blob/master/core/components/shopkeeper3/templates/home.tpl
    Шаблон редактирования заказа здесь обозначен комментарием

    <!-- order_edit -->

    Нужно добавить поле в форму. Пример:

    <input type="date" ng-model="data.order.date">

    В "ng-model" указывается имя поля в заказе.
    Если это новое поле, то сохранять его нужно здесь
    https://github.com/andchir/shopkeeper3/blob/master/core/components/shopkeeper3/processors/mgr/saveorder.class.php

    Читать далее
  • N

    @Andchir извиняюсь, забыл что не на битве экстрасенсов)
    Версия старенькая - 3.2.5-pl. С таким количеством нововведений обновлять просто уже нельзя.

    Читать далее