Wie zu warten, bis das Bild geladen ist in jquery
Habe ich in diesem Beispiel, wenn mein Formular abgeschickt wird, habe ich das laden einer image-Datei und warten Sie, bis das Bild geladen hat, um return true
(in diesem Fall, das Formular zu senden)
z.B.
$('#myform').submit(function(){
var image=document.createElement('image')
var src=document.createAttribute('src')
image.value="http://example.com/image.jpg"
image.setAttributeNode(src);
document.body.appendChild(image);
})
Hier, wenn ich return true
form eingereicht werden (das Bild wird nicht geladen) und wenn false
es nicht (das Bild wird zwar geladen, aber das Formular wird nicht gesendet). Wie kann ich einen code, der true zurückgibt, nachdem das Bild geladen wurde.
Haben Sie einen Blick auf die waitForImages jquery-plugin.
InformationsquelleAutor AMD | 2013-03-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein wichtiges Konzept, das muss man hier beachten - Wenn Sie das hinzufügen eines Event-Handler-Funktion ausgeführt werden soll, wenn ein bestimmtes Ereignis ausgelöst wird, wird der Wert, den der Event-Handler-Funktion
return
s eigentlich geht nirgends, und übergeben, nichts. Ereignis-Listener erstellt, um invoke-Ereignis-Handler-Funktionen zu einem unbekannten Zeitpunkt in der Zukunft, aber die typischen Skript-Ausführung ist komplett linear und geschieht in der Reihenfolge der Befehle in der Skript - so ist es am besten zu definieren, die die Funktionalität Ihrer Anwendung in einer Weise, dass Sie bestimmte Aktionen durchführen, wie dies nur dann, wenn bestimmte Ereignisse stattfinden.Sieht es aus wie in deiner Frage oben, definieren Sie einen event-handler zu hören, wenn das Formular abgeschickt wird zunächst, also nehme ich, dass als die erste Veranstaltung, die bekommt alles begann. Hier ist, wie ich das handhaben würde, die Vorlage Prozess, den Sie beschreiben:
Beispiel für diese arbeiten auf JSFiddle:
http://jsfiddle.net/Admiral/uweLe/
Ich würde empfehlen, das Lesen auf jQuery
.on()
Methode gewinnen einen Einblick auf die derzeit bevorzugten Methoden der Veranstaltung verbindlich - das sollte alles etwas klarer wird.http://api.jquery.com/on/
Glück!
InformationsquelleAutor Admiral Potato
Man könnte eine
onload
oderjquery load
- event auf das Bild und senden Sie das Formular auf den Rückruf. Dann, wenn Sie möchten, länger zu warten immer noch Sie könnten auch ein timeout in der callback.Etwas wie:
Hinweis: In meinem Beispiel habe ich geändert, die
submit
Veranstaltung zu einemclick
Veranstaltung. Sie konnte immer noch die Einreichen, wenn Sie wollen, es würde vermutlich immer noch funktionieren, solange Sie zurückgegebenfalse
oder verwendet werdenpreventDefault
.InformationsquelleAutor Coin_op
Benutze ich imagesLoaded VERPACKT v3.1.8
Können Sie finden es auch auf github:
https://github.com/desandro/imagesloaded
Ihre offizielle Website:
http://imagesloaded.desandro.com/
InformationsquelleAutor Yevgeniy Afanasyev