jQuery: Dokument bereit feuert zu früh für meine Anforderungen
Ich entwickle eine Website basiert alles rund um Fotos. Einige Bereiche dieser Website erfordern die Berechnungen basieren auf den Abmessungen der Bilder, um korrekt arbeiten. Was ich gefunden habe, ist, dass das Dokument bereit ist, feuern zu früh und meine gui ist ein fehlerhaftes Verhalten zeigt als Ergebnis.
Entfernte ich die document-ready-Funktion und ersetzt es mit der guten alten Fenster.die Funktion onload, da, wenn ich das richtig gelesen habe, wird diese Funktion nicht ausgelöst, bis die Bilder vollständig geladen sind.
Meine Frage ist, wird dies keine Probleme verursachen? Und gibt es andere Lösungen, die ich verpasst haben vielleicht?
Danke für die Hilfe Jungs!!
InformationsquelleAutor der Frage user239237 | 2010-01-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keinen Grund, Sie nicht verwenden können
$(window).load()
im Gegensatz zu$(document.ready()
. Sie sind richtig über die Funktion nicht feuern, bis die Bilder vollständig geladen (oder nicht geladen).Den Nachteil, voll Vertrauen auf
$(window).load()
werden, dass in einigen Fällen es ist offensichtlich, keiner von Ihren javascript arbeitet (d.h. navigation oder klicken Sie auf Ereignisse), bis jeder einzelne Punkt auf Ihre Seite geladen hat. Einige Benutzer, in der Regel einer website für power-user, klicken Sie durch die Seiten ist sehr schnell und das verändert nicht nur die Allgemeine Benutzerfreundlichkeit.Den happy medium wäre verwenden
$(window).ready()
für die meisten Situationen und nur die Ereignisse innerhalb$(window).load()
dass unbedingt benötigen Sie.InformationsquelleAutor der Antwort Corey Ballou
Versuchen Sie dies:
Finden Sie unter diesem link für einen Vergleich der
$(document).ready()
und$(window).load()
http://4loc.wordpress.com/2009/04/28/documentready-vs-windowload/
InformationsquelleAutor der Antwort JCasso
Obwohl
window.onload
Ihren Bedürfnissen entsprechen würde, würde ich empfehlen, beschleunigt die Dinge ein wenig:Nun können Sie Bild einzeln, so schnell wie es geladen ist und wartet nicht auf das ganze set von Elementen.
InformationsquelleAutor der Antwort metrobalderas
Hier eine sehr einfache Lösung:
Gehören die
width=""
undheight=""
Attribute für alle Bilder. Dies zwingt die browser machen alles richtig und an Ort und Stelle, bevor Bilder geladen werden. Der Platzbedarf für jedes Bild in der Seite Immobilien richtig gesetzt werden, beiseite, während die Bilder laden.Das ist es!
Wenn Sie das tun,
document.ready
gut funktionieren wird in Ihrem Szenario. Was passiert ist, dass der browser nicht wissen, die Größe der Bilder, bevor Sie abgerufen/geladen, so dass der browser zu erraten hat. Das kann die Ursache für das komische Verhalten. Die Angabe der Breite und Höhe der Bilder wird dieses problem lösen.Ich bin überrascht, niemand erwähnt. Es ist nicht unbedingt ein javascript-problem, obwohl cballou Antwort ist auf jeden Fall gut beraten.
Sowieso, hoffen, dass Sie etwas neues gelernt. 😉
InformationsquelleAutor der Antwort trusktr
Könnten Sie möglich das
load()
- event in jqueryaber in der Dokumentation wird erwähnt, dass es möglicherweise nicht funktioniert wie erwartet, wenn das element bereits geladen hat.InformationsquelleAutor der Antwort adamse
Wenn Sie wollen, zu verzögern, es mit einer Menge von Zeit gegeben, vielleicht kannst du mit "setTimeout" 🙂
InformationsquelleAutor der Antwort fmsf