jQuery - ausführen einer Funktion vor dem Dokument.fertig... aber nicht zu früh

Ich habe eine Seite, die enthält ein div, das muss geändert werden über JS, wenn eine Seite geladen wird. Um dies zu tun, ich gebe es eine "default-Breite" von 760px und führen Sie dann den folgenden code:

function resizeList()
{
    var wlwidth,iwidth,nwidth;
    wlwidth = document.body.clientWidth - 200 - 60;
    iwidth = 320;
    nwidth  = Math.floor(wlwidth / iwidth) * iwidth;
    $('#list').css('width',nwidth);
}

$(document).ready(function(){
    //if we're looking at a list, do the resize-thing, now and on window resize
    if (window.location.pathname.toString().split('/')[1] == "list")
    {
        resizeList();
        window.onresize = resizeList;
    }
});

Die Seite jedoch kann eine Weile dauern zu laden, als die #list div enthält eine Menge Bilder. So, das div wird nur erweitert zu füllen, die richtige Breite, nachdem alle Inhalte geladen hat. Ich kann nicht einfach nehmen Sie es aus der $(document).ready Funktion, da sonst Fehler heraus sagen-Dokument.Körper ist nicht definiert.

Gibt es eine Möglichkeit, um die Größe des #list div, bevor alle Inhalte geladen haben?

Bearbeiten

Siehe: http://www.google.com/images?q=whatever

Sie habe erreicht, was ich versuche zu tun erfolgreich. Die Liste ist die richtige Größe sofort auf die Seite laden, und dann aufgefüllt. Sie können sagen, dass Sie Größe alles, was via JS, indem die Größe des Fensters und beobachten die Elemente bewegen sich reibungslos. Traurig, dass google JS ist nicht die einfachste in der Welt zu Lesen Seufzer

  • Sie könnten versuchen, Einstellung display: none; für #Liste, ändern Sie die Größe und display: block, um es über jQuery. Ich mag mich irren - aber ich denke, der browser lädt nicht die Bilder in einem versteckten div.
  • sehr interessante Idee! Werde ich probieren... obwohl das Altern sehr schlecht für nicht-JS-Nutzer, unwiderruflich ausblenden der #Liste div
InformationsquelleAutor Mala | 2010-07-04
Schreibe einen Kommentar