Ich habe auch versucht, load durch ready zu ersetzen, aber es ist auch fehlgeschlagen. Was ist das Problem ? Ist das Ladeereignis nicht für ein einzelnes Element verfügbar?
Der Code wird in $(document).ready(…) platziert und die Elemente werden alle angezeigt, wenn die Seite gesendet wird.
Vielen Dank
@Cherniv ya, und Skript zu oops
– A. Wolff
1. Juli 2013 um 8:31 Uhr
@geröstet aber input 100% nein
– Iwan Tschernych
1. Juli 2013 um 8:31 Uhr
stackoverflow.com/questions/8608145/…
– rahularyansharma
1. Juli 2013 um 8:31 Uhr
Verwenden Sie einfach das Dokument laden?
– David Fregoli
1. Juli 2013 um 8:32 Uhr
Ich habe auch “$(document).on(‘ready change’, ‘.user’, function(){” ausprobiert. Ich dachte, dass das auf ein Element angewendete Load-Ereignis ausgelöst wird, wenn das Element geladen wird, wie document.
– FLX
1. Juli 2013 um 8:34 Uhr
Vogel612
das load Das Ereignis wird in dem Moment aufgerufen, in dem alle untergeordneten Elemente des angehörten Elements geladen sind. In Ihrem Fall könnte dies vor dem Aufruf des ready-Ereignisses erfolgen, wodurch Ihr Handler zum Laden (der nach document.ready angehängt wird) unbrauchbar wird.
als Referenz siehe JQuery-API wo Sie Folgendes finden:
Das Ladeereignis wird an ein Element gesendet, wenn es und alle Unterelemente vollständig geladen wurden. Dieses Ereignis kann an jedes Element gesendet werden, das mit einer URL verknüpft ist: Bilder, Skripte, Frames, iFrames und das Fensterobjekt.
Dies bedeutet auch, dass Sie eine URL benötigen, damit Sie das Ladeereignis abhören können. Da Sie keinen weiteren Code bereitgestellt haben, gehe ich davon aus, dass Sie tatsächlich eine URL haben, die Sie anhören können.
Dies könnte jedoch die wahrscheinlichste Ursache sein. wenn Sie tun keine URL zugeordnet ist mit (mindestens einem) untergeordneten Element(en) es wird kein Ladeereignis geben kann man sich anhören.
Ich habe den Code zu einer Methode zur besseren Lesbarkeit gemacht 😉
@roasted danke, dass du mich da oben repariert hast. Das Lustige ist, dass das Ladeereignis für das Element, auf das er hört, möglicherweise noch aufgerufen wird, bevor es bereit ist, siehe aktualisierte Antwort
– Vogel612
1. Juli 2013 um 8:43 Uhr
Die Sache ist, dass Sie einen Handler nur dann an ein Element anhängen können, wenn das Element im DOM bereit/verfügbar ist. Ich kann mir einen Fall vorstellen, in dem Sie ein onload-Ereignis direkt nach diesem Element-Tag an ein Bild/Skript anhängen und dieses Element bereits zwischengespeichert ist. In diesem Fall denke ich, dass Sie Recht haben, das Onload-Ereignis sollte ausgelöst werden, bevor das Dokument fertig ist. Wie auch immer, nette Eingabe in der Tat +1
– A. Wolff
1. Juli 2013 um 8:49 Uhr
Vielen Dank für die Antwort. Wäre es besser, eine Funktion wie diese Lösung auszuführen oder ein benutzerdefiniertes Ereignis zu erstellen, das ich für das Dokument auslöse? Weil ich dieses System mehrmals verwenden werde.
– FLX
1. Juli 2013 um 8:53 Uhr
@ Vogel612 nach meinem vorherigen Kommentar, sogar zwischengespeichert, wird das onload-Ereignis eines Bildes immer noch ausgelöst, nachdem das Dokument fertig ist: jsfiddle.net/w4zSj
– A. Wolff
1. Juli 2013 um 8:55 Uhr
@Vogel612 div hat kein Onload-Ereignis zum Anhängen. Das Onload-Ereignis wird also mit Sicherheit nicht ausgelöst.
– A. Wolff
1. Juli 2013 um 9:10 Uhr
Wie Vogel612 erklärte, load feuert nicht für die meisten Elemente.
ready ist nur für document.
Sie können verwenden each um Ihren Event-Handler anfänglich auszuführen.
$(document).ready(function(){
$('.user')
.each(user_handler)
.on('change', user_handler);
});
var user_handler = function(){
// this
};
@Cherniv ya, und Skript zu oops
– A. Wolff
1. Juli 2013 um 8:31 Uhr
@geröstet aber
input
100% nein– Iwan Tschernych
1. Juli 2013 um 8:31 Uhr
stackoverflow.com/questions/8608145/…
– rahularyansharma
1. Juli 2013 um 8:31 Uhr
Verwenden Sie einfach das Dokument laden?
– David Fregoli
1. Juli 2013 um 8:32 Uhr
Ich habe auch “$(document).on(‘ready change’, ‘.user’, function(){” ausprobiert. Ich dachte, dass das auf ein Element angewendete Load-Ereignis ausgelöst wird, wenn das Element geladen wird, wie document.
– FLX
1. Juli 2013 um 8:34 Uhr