Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Необходимо добавить еще один DIV. И получить значение. (https://javascript.ru/forum/css-html/79016-neobkhodimo-dobavit-eshhe-odin-div-i-poluchit-znachenie.html)

рони 07.12.2019 23:59

svileff,
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
это грузить не надо, у вас уже есть jquery

svileff 08.12.2019 00:06

Скидка так и не появляется

рони 08.12.2019 00:25

svileff,
на момент клика корзины не существует, она либо формируется, либо грузится с сервера, надо ставить дополнение в функцию формирования корзины.
можно конечно через таймер, но это очень плохой вариант.
$(function() {
    $("[href = '#order'], .t706__carticon-wrapper").click(function() {
        window.setTimeout(function() {
            function numberWithCommas(str) {
                return (+str).toFixed(0).replace(/(\d+)(\.\d+)?/g, function(c, b, a) {
                    return b.replace(/(\d)(?=(\d{3})+$)/g, "$1 ") + (a || "")
                })
            }
            $(".t706__product-amount.t-descr.t-descr_sm").each(function(i, el) {
                var nextLength = $(el).next(".t706__product-amount-sale").length;
                if (nextLength) return;
                var num = (el.textContent.replace(/[^0-9.]/g, "") || 0) * .8;
                var txt = numberWithCommas(num);
                $(el).after('<div class="t706__product-amount-sale">' +
                    txt + "&nbsp;\u0440.</div>")
            })
        }, 1500)
    })
});

svileff 08.12.2019 00:41

Да так все срабатывает... Но небольшая задержка происходит. И еще как можно ограничить скидку что бы она начинала появляться когда общая сумма достигнет 3000 руб.

рони 08.12.2019 00:47

Цитата:

Сообщение от svileff
Но небольшая задержка происходит.

Цитата:

Сообщение от рони
это очень плохой вариант.

Цитата:

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

Цитата:

Сообщение от svileff
И еще как можно

можно, но уже нет желания городить костыли.
смотрите общую сумму и делай условие в строке 9
if(сумма > 3000) $(".t706__product-amount.t-descr.t-descr_sm").each(function(i, el) {

svileff 08.12.2019 00:59

$(".t706__cartwin-prodamount").bind( 'DOMSubtreeModified',function() {
var firsttime = true;
var productsum = window.tcart.prodamount;
num++;
if(  (num == 2 || firsttime )  && (productsum > 3000) ) $(".t706__product-amount.t-descr.t-descr_sm").each(function(i, el) {


Что то типа такого?

рони 08.12.2019 01:04

Цитата:

Сообщение от svileff
Что то типа такого?

:) возможно.

svileff 08.12.2019 01:07

Кстати когда миняеш значение товара цена миняется а скидка нет... Как это можно подправить.

рони 08.12.2019 01:17

svileff,
var nextLength = $(el).next(".t706__product-amount-sale").length;
 if (nextLength) return;

заменить на
$(el).next(".t706__product-amount-sale").remove()

svileff 08.12.2019 01:22

Заменил не меняется


Часовой пояс GMT +3, время: 15:38.