Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Непоследовательное выполнение кода из getJSON (https://javascript.ru/forum/jquery/82918-neposledovatelnoe-vypolnenie-koda-iz-getjson.html)

Niktia 04.08.2021 16:05

Непоследовательное выполнение кода из getJSON
 
Добрый день. У меня есть такая функция, которая достаёт из JSON файла товары типо для интернет магазина.
function showProducts() {
    //выводит продукты из json на страницу
    $.getJSON("goods.json", function (data) {
        var out = "";
        for (var key in data) {
            out += `<div class="product" id="${key}">
                        <img src="${data[key]["image"]}" alt="${data[key]["name"]}">
                        <div class="content">
                            <p class="product_name">${data[key]["name"]}</p>
                            <p class="description">${data[key]["description"]}</p>
                            <div class="fast_order">
                                <div class="price">${data[key]["cost"]}р</div>
                                <div class="buy_button">В корзину</div>
                            </div>
                        </div>
                    </div>`
        }
        $(".main").append(out);
        $(".buy_button").on("click", addToCart);
    });
};

Все как бы работает, только вот если я хочу добавить после этих товаров какой нибудь другой блок, то он появляется над ними. Например, вызываю две функции:
$(document).ready(function () {
    showProducts();
    checkAddedInCart(); 
});

function checkAddedInCart() {
    var kek = "ekkekekekekekkekekekkkkkkekek";
    $(".main").append(kek);
};

В итоге надпись "ekkekekekekekkekekekkkkkkekek" появляется над моими товарами.
Заметил, что в отладчике после строки $.getJSON("goods.json", function (data) идёт прыжок к закрывающейся скобке }); и ничего не добавляется на страницу. Глубже разобраться отладчиком не смог, т.к идут вызовы в какие-то файлы js, хотя я и включил blackbox-ы.
Я совсем новичок, так что, наверняка, не знаю какой-то самой простой вещи, подскажите, почему код себя так ведёт?

рони 04.08.2021 16:41

Niktia,
showProducts сработает когда захочет, поэтому checkAddedInCart надо вызывать в этой функции строка 19.


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