Обновление только целевого элемента с помощью ajax

Я пытаюсь обновить страницу корзины с помощью ajax, когда кто-то увеличивает или уменьшает количество продуктов, моя логика просмотра в порядке. Моя проблема, как я могу предположить, заключается в нацеливании класса "ajax_updater", как только я нажимаю на кнопки количества, ajax работает, но вместо того, чтобы нацелиться только на определенный продукт, он нацеливается на количество всех продуктов с тем же классом ".quantity-style" и изменяет значение в соответствии с целевым продуктом, поэтому, если количество для продукта A равно 4 после ClickEvent, количество для продуктов B, D, F становится целевым и изменяется на 4 тоже, что может быть решением?

{% for item in items %}
    <div class="quantity">
        <p id="quantity-style" class="quantity-style">{{item.quantity}}</p>
        <div class="quantity-arrows">
            <img data-product="{{item.product.id}}" class="ajax_updater" data-action="add" src="{% static 'shop/images/arrow-up.png' %}">

            <img data-product="{{item.product.id}}" class="ajax_updater" data-action="remove" src="{% static 'shop/images/arrow-down.png' %}">
        </div>          
    </div>
{% endfor %}


function update_arrow() {
    $.ajaxSetup ({
        cache: false
    });
    var spinner = '<i class="fas fa-circle-notch fa-spin" style="font-size:15px;" alt="loading" ></i>';

    $(".quantity-style").html(spinner).load(update_quantity_url);
    console.log(update_arrow_url);
}

$('.ajax_updater').click(function () {
    update_arrow();
    console.log('hit hit');
});

Вам нужно указать, какой элемент обновлять, простой способ сделать это - передать элемент для обновления в функции.

function update_arrow(container) {
    $.ajaxSetup ({
        cache: false
    });
    var spinner = '<i class="fas fa-circle-notch fa-spin" style="font-size:15px;" alt="loading" ></i>';

    container.find(".quantity-style").html(spinner).load(update_quantity_url);
    console.log(update_arrow_url);
}

$('.ajax_updater').click(function () {
    update_arrow($(this).closest('.quantity'));
    console.log('hit hit');
});
Вернуться на верх