Всего 125 351 комментарий

Николай Савин
28 мая 2022, 08:51
0
Да брось, страница необязательно будет разной, даже если это один и тот же товар.
Смотри, если товар находится в разных категориях, то по мере его открытия уже будет отличаться URL, хлебные крошки, которые по уму несут в себе еще и микроразметку. В заголовок можно текущую категорию включить, контент разнообразить.
Артур Шевченко
27 мая 2022, 23:33
+1
Хлебные крошки в идеале должны соответствовать url, разные url для одной страницы это плохо, т.к. придется склеивать дубли. В общем, нужно возиться, но стоит ли оно того?
Артур Шевченко
27 мая 2022, 23:30
0
И тут ничего готового нет. Но суть задачи та же. Записываешь ID потом вытаскиваешь его и по нему достаешь нужную информацию, или производишь нужные действия.
nikolrazumov
27 мая 2022, 22:46
0
Да phpthumbon что-то не хочет работать, поставил pThumb все заработало.
nikolrazumov
27 мая 2022, 20:23
+1
Благодарю, Ура сайт ожил!
Константин
27 мая 2022, 14:25
0
Всем привет, как удалить компонент localizator?
Удаляю — слетает сайт.
Пришлось снова его установить.
Решил пойти путем удаления локализаций. Но пропали все стандартные выводы заголовком и доп полей.
Как быть?
Артур Шевченко
27 мая 2022, 10:36
0
Почитай про всплытие событий в JS. Про кастомные события почитай, тоже интересно. Я вот свой класс для кастомизации ввода чисел написал на нативном js? можешь посмотреть там есть вызов событий.
deleted
27 мая 2022, 01:55
0
javascript.info/dispatch-events#bubbling-example
Если честно, про bubbles сам не особо понимаю, просто опытным путём выяснил, что так работает)
Дмитрий
27 мая 2022, 00:15
0
Скажите, пожалуйста, есть ли источник, где можно про это почитать (в частности про bubbles)?
Дмитрий
27 мая 2022, 00:02
0
Заработало, спасибо большое!
Дмитрий
27 мая 2022, 00:01
0
Кнопка в форме отвечает за отправку заказа, а суть в том, чтобы цена менялась динамически при нажатии на + или — (тег span .input-group-text)
deleted
26 мая 2022, 23:57
+1
Попробуйте так: el.dispatchEvent(new Event('change', {'bubbles': true})))
Можно попробовать событие вешать на форму, а не на инпут
Станислав
26 мая 2022, 23:51
0
Клик на кнопку
<button style="display:none;" type="submit" name="ms2_action" value="cart/change"></button>
делаете и все
Дмитрий
26 мая 2022, 23:35
0
Станислав, спасибо, но суть задачи именно переписать на ванильный JS, без использования jQuery, я бы попробовал переписать Ваш код, но у Вас тоже есть эта функция trigger, аналог которой я все не могу найти
Станислав
26 мая 2022, 23:25
0
Вот пример рабочего кода, меняется классы и все будет работать!
<form method="post" class="ms2_form form-inline" role="form">
                                    <input type="hidden" name="key" value="{$product.key}"/>
                                    <div class="cart-product-quantity">
                                        <div class="quantity">
                                            <span class="minus countButton" data-ms2-count="minus"></span>
                                            <input type="text" class="qty count" value="{$product.count}" name="count" max="100">
                                            <span class="plus countButton" data-ms2-count="plus"></span>
                                        </div>
                                    </div>
                                    <button style="display:none;" type="submit" name="ms2_action" value="cart/change"></button>
                                </form>
<th class="total_cost">
                        <span class="ms2_total_cost">{$total.cost}</span>
                        {'ms2_frontend_currency' | lexicon}
                    </th>
<script>
    $('body').on('click', '.quantity .control', function (e) {
        var type = $(this).parent(),
            input = $(this).siblings('input.count'),
            count = input.val();
    
        if ($(this).hasClass('plus')) {
            count++;
        } else if ($(this).hasClass('minus') && count > 1) {
            count--;
        }
        input.val(count);
        input.change();
    });
    $(document)
    .on('click touchend', ".countButton", function (e) {
        e.preventDefault();
        var $container = $(this).closest('.ms2_form'),
        $count = $container.find('[name="count"]'),
        num = $count.val();
        if (isNaN(num) === false) {
            num = parseInt(num, 10);
            switch ($(this).data('ms2-count')) {
                case 'plus':
                    num = num + 1;
                    $count.val(num);
                    break;
                case 'minus':
                    if (num <= 1) return;
                    num = num - 1;
                    $count.val(num);
                    break;
            }
        } else {
            return false;
        }
        $count.trigger('change');
    })
    .on('change keypress keyup', '.ms2_form [name="count"]', function() {
        if ($(this).val().match(/\D/)) {
            this.value = $(this).val().replace(/\D/g,'');
        }
        if (parseInt($(this).val(), 10) < 1) {
            this.value = 1;
        }
    });
</script>