Как я могу получить данные с помощью jquery .load, только когда загружена DOM целевой страницы? - PullRequest
4 голосов
/ 15 октября 2019

У меня есть эта страница, где у меня есть система рейтинга. Для отображения рейтинга я создаю некоторые элементы в цикле через javascript, в соответствии с данными, которые я выбираю из базы данных. Затем я хочу, чтобы данные менялись при изменении базы данных, но вместо того, чтобы перезагружать страницу, я хочу, чтобы она перезагрузила только div, связанный с рейтингом контента. Проблема в том, что когда я вызываю функцию $ ( # idOfRankingsParent ). Load ("index.php # idOfRankingsChild ), она ничего не загружает, потому что контент создается только послеDOM полностью загружен (из-за document.createElement, appendChild и т. д.) Можно ли загрузить контент после создания каждого элемента?

Итак, у меня вызывается эта функцияa setInterval:

function loadContent() {
    console.log("loaded");
    $( "#ranking-container" ).load("index.php #ranking-wrapper");
    rankingList.style.filter="blur(0)";  
}

setInterval(loadContent, 5500);

Тогда у меня есть эта функция, создающая элементы и вызываемая как можно скорее:

function createRanks() {

    (...)

    var pontosOrdered = x;
    var equipasOrdered = y;

    for (var t=0; t<equipasOrdered.length; t++) {
        var rankLi = document.createElement("li");
        rankingList.appendChild(rankLi);

        if (t===0) {rankLi.id="first-place";}
        if (t===1) {rankLi.id="second-place";}
        if (t===2) {rankLi.id="third-place";}

        var lugarP = document.createElement("p");
        rankLi.appendChild(lugarP);
        lugarP.classList.add("lugar");
        lugarP.innerHTML=t+1;

        var nomeEquipaP = document.createElement("a");
        rankLi.appendChild(nomeEquipaP);
        nomeEquipaP.innerHTML=equipasOrdered[t];
        nomeEquipaP.href="/equipas/#"+nameToLowerCase(equipasOrdered[t]);

        var pontosP = document.createElement("p");
        rankLi.appendChild(pontosP);
        pontosP.classList.add("pontos");
        pontosP.innerHTML=pontosOrdered[t];
    }
}

$(document).ready(function() {
    createRanks();
});

(отредактировано)

У меня есть здесьнекоторые отпечатки страницы при первой загрузке: https://i.imgur.com/ecJKpZz.png

А при загрузке div:

https://i.imgur.com/gEOYt5X.png

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...