.offset (). top retornando o valor errado

Estou tendo um problema bizarro que não sei como resolver e queria saber se vocês poderiam ajudar.

Um pouco de fundo: me pediram para criar um sistema onde subpáginas de uma página no wordpress são carregadas no final dessa página em uma rolagem infinita. Isso está funcionando corretamente.

Eles também querem que os principais links de navegação carreguem todo o conteúdo até e incluindo a página em que clicaram e rolem até ele.

Se eu rolar para baixo (carregando as páginas) e, em seguida, clicar em um link de nav superior, a rolagem funcionará corretamente. No entanto, se eu carregar NO outras páginas antes de clicar em um dos links, as páginas serão carregadas e o pergaminho será iniciado, mas só sairá do caminho antes de parar. Isto é devido a um valor incorreto sendo dado pelo offset (). Top. Minha pergunta é por que?

function ajaxloadnscroll(index) {

    //If the page has already been loaded then just scroll to it
    if (pages[index].loaded) {
        $('html, body').animate({
            scrollTop: $("#" + pages[index].name).offset().top
        }, 2000);
        return;
    }

    //Loop through pages up to one clicked.
    for (i = 0; i <= index; i++) {


        current = i;
        if (!pages[current].loaded) {
            $.ajax({
                url: pages[i].url,
                async: false,
                context: document.body,
                success: function(data) {
                    if (data) {
                        $("#tempload").before(data);
                        pages[current].loaded = true;

                        if (current == index) {
                            $('html, body').animate({
                                scrollTop: $("#" + pages[current].name).offset().top
                            }, 2000);
                        }

                    }
                }
            });
        }
    }

    //Increment current in order to load next page object on scroll.
    current++;
    return false;
}​

Qualquer ajuda que você poderia me dar sobre esta questão seria muito apreciada!

questionAnswers(0)

yourAnswerToTheQuestion