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


Кнопки у shk-count

  • Развел по разным событиям, но все равно не работает:

    $(document).ready(function() {
    
        $('.button--minus').on("click", function () {
            var $input = $(this).parent().find('.shk-count');
            var count = parseInt($input.val()) - 1;
            count = count < 1 ? 1 : count;
            $input.val(count);
            $input.change();
            return false;
        });
    
        $('.button--plus').on("click",function () {
            var $input = $(this).parent().find('.shk-count');
            $input.val(parseInt($input.val()) + 1);
            $input.change();
            return false;
        });
        
        $('.shk-count').on('change', function () {
             SHK.recountItemAll();
        });
    });
    
    
  • Покажите как добавили кнопки (полный код чанка).

    Скрипт самый правильный у вас написан после слов

    Попробовал добавить функцию пересчета сразу в скрипт изменения значения в инпате:

  • @andchir
    Вот полный код корзины:

    <div class="checkoutOffers layout__row" data-shopcart="2">
    <b>ПУстая корзина - Добавьте товар</b>
    </div>
    <!--tpl_separator-->
    <div class="checkoutOffers layout__row" data-shopcart="2">
    <form action="[[+this_page_url]]#shopCart" method="post" class="form">
    [[+inner]]
    </form>
    </div>
    

    Вот код для строки, для [[+inner]]:

    <div class="checkoutOffer">
        <div class="checkoutOffer__inner">
    
        <div class="checkoutOffer__item checkoutOffer__item--type--number">
            <span class="checkoutOffer__number">[[+num]]</span>
        </div>
        <div class="checkoutOffer__item checkoutOffer__item--type--img">
            <a href="[[+url]]" class="link"><img src="[[+product__mainImage]]" alt="" class="img checkoutOffer__img"></a>
    
    
    
        </div>
        <div class="checkoutOffer__item checkoutOffer__item--type--content">
            <div class="checkoutOffer__itemTitle">
                <div class="title checkoutOffer__itemName">[[+name]]</div>
                <div class="checkoutOffer__itemPrice">ЦЕНА: [[+product__price]] </div>
                
                
                
            </div>
        </div>
        <div class="checkoutOffer__item checkoutOffer__item--type--count">
            <div class="checkoutOffer__quantity">
                <div class="amountSelect">
    
                <button class="button button--white button--transparent button--minus amountSelect__button" role="button" type="submit">
                    <span class="button__text">
                        -
                    </span>
                </button>
    
                <span class="input amountSelect__input">
                        <span class="input__box">
                            <input class="input__control amountSelect__control shk-count" type="text" size="2" maxlength="3" title="изменить количество" value="[[+count]]">
                        </span>
                </span>
    
                <button class="button button--white button--transparent button--plus amountSelect__button" role="button" type="submit">
                    <span class="button__text">
                      +
                    </span>
                </button>
    
     
                </div>
            </div>
        </div>
        <div class="checkoutOffer__item checkoutOffer__item--type--del">
            <div class="checkoutOffer__delete">
                <a href="#" class="image imageDelete">
    
                </a>
            </div>
        </div>
        </div>  
    
    </div>  
    

    Я пробовал еще вчера, со стандартными кнопками работает все хорошо

  • Откатился назад, настроил все заново. Провел эксперимент - Делаю со стандартными чанками, с включенными кнопками для количества - все работает. Отключаю кнопки, добавляю их в стандартный чанк вручную, в таком виде, в котором бы эти кнопки добавил JS:

            <button class="shk_count_button" type="button">-</button>
            <input class="shk-count" type="text" size="2" name="count[]" maxlength="3" title="изменить количество" value="[[+count]]" />
            <button class="shk_count_button" type="button">+</button>
    
    
    

    В таком виде кнопки ничего не делают. Добавляю к стандартным кнопка необходимые для моего скрипта стили (button--minus, button--plus), что бы значение в инпате изменялось моим скриптом, хтмл:

    <tr class="cart-order">
        <td align="left"><b><a href="[[+url]]">[[+name]]</a></b> [[+addit_data]]</td>
        <td>[[+price]] [[+currency]]</td>
        <td>
            <button class="shk_count_button button--minus" type="button">-</button>
            <input class="shk-count" type="text" size="2" name="count[]" maxlength="3" title="изменить количество" value="[[+count]]" />
            <button class="shk_count_button button--plus" type="button">+</button>
        </td>
        <td align="right">
            <a href="[[+url_del_item]]" title="Удалить" class="shk-del"><img src="assets/components/shopkeeper3/web/css/default/delete.gif" width="17" height="17" alt="Удалить" /></a>
        </td>
    </tr>
    

    JS:

    $(document).ready(function() {
        $('.button--minus').on("click", function () {
            var $input = $(this).parent().find('.shk-count');
            var count = parseInt($input.val()) - 1;
            count = count < 1 ? 1 : count;
            $input.val(count);
            $input.change();
            SHK.recountItemAll();
            return false;
        });
    
        $('.button--plus').on("click",function () {
            var $input = $(this).parent().find('.shk-count');
            $input.val(parseInt($input.val()) + 1);
            $input.change();
            SHK.recountItemAll();
            return false;
        });
    });
    

    После этого, при нажатии на кнопку изменения кол-ва, на секунду значение в инпате меняет, появляется лоадер, но тут же пропадает и значение возвращается на изначальное, при повторных нажатиях уже ничгео не происходит.

    Сделал все со стандартными чанками, чтобы избежать своих ошибок, но все равно чего-то не хватает. Подскажите, что еще можно попробовать?

  • @andchir Попробовал немного по-другому.
    Если оставить кнопки включенными по умолчанию, то когда мы меняем значение товара не кнопкой, а вручную, вписывая значение в инпат, то пересчет работает.
    Я попробовал менять значение в инпате своими кнопками и скриптом, но уже без вызова SHK.recountItemAll();, в надежде, что после изменения в инпате, значение само пересчитается. Однако этого не происходит, опять после нажатия на свою кнопку значение на малое время изменяется, появляется лоадер, значение возвращается в первичное состояния, при повторных нажатиях уже значение не меняется. Уже не знаю что и пробовать

  • Где можно посмотреть?

  • @andchir
    Ссылку напишу в приват.
    Сейчас поставил набор параметров для корзины, по умолчанию.
    0_1518204495214_5fa768f6-51b8-461a-934e-8f8d6dabd330-image.png

    У этого набора только шаблоны прописаны вручную, в новые чанки, что бы не работать с исходными
    0_1518204451749_0075112b-5d6d-4efd-bff2-0fd02021bc54-image.png
    Стандартные конпки включены, плюс к ним, в чанке cart__row--self добавлены свои кнопки. Скрипт к своим конпкам сейчас в таком виде:

    $(document).ready(function() {
        $('.button--minus').on("click", function () {
            var $input = $(this).parent().find('.shk-count');
            var count = parseInt($input.val()) - 1;
            count = count < 1 ? 1 : count;
            $input.val(count);
            $input.change();
            SHK.recountItemAll();
            return false;
        });
    
        $('.button--plus').on("click",function () {
            var $input = $(this).parent().find('.shk-count');
            $input.val(parseInt($input.val()) + 1);
            $input.change();
            SHK.recountItemAll();
            return false;
        });
    });
    
    1. Вместо $('.button--plus').on('click' лучше писать что-то вроде $('[data-shopcart="3"]').on('click', '.button--plus' чтобы после обновления корзины эти события оставались привязанными к кнопкам.

    2. Нужно убрать вторую корзину на странице. С двумя корзинами скрипт более сложный.

  • Добрый день. Переделала корзину и так-же вывела кнопки через html. И при первом клике цены обновляются, но при втором клике перекидывает на страницу товара, в чем может быть проблема? Сайт: http://ct23424fd.tmweb.ru/

  • И при первом клике цены обновляются, но при втором клике перекидывает на страницу товара

    Причина в том, что вы не последовали моему первому совету.

  • @andchir Пробовала так-же не работает(((

  • И так пробовала, на первый клик корзина обновляется, при втором перекидывает на главную.
    $(document).on('change', '[data-shopcart] .shk-count', function () {
    SHK.recountItemAll();
    return false;
    });

  • Пробовала так-же не работает(((

    Как пробовали?

 

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

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

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

    Там вроде как зависимость от компонента 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. С таким количеством нововведений обновлять просто уже нельзя.

    Читать далее