js, Reihenfolge der Ausgaben erzwingen
-
@Th69 danke, so funktioniert es:
<!DOCTYPE html> <html lang="de"> <head> <script> function test (){ alert ("A") ; document.getElementById("d1").style.display = "none" ; setTimeout(function (){ alert ("B") ; }, 1) ; } </script> </head> <body> <div onclick="test();">test</div> <div id="d1">Ausgabe</div> </body> </html>
gibt es noch andere (schönere) Lösungen?
Dankeschön
-
liegt daran, dass alle function calls in der test funktion direkt nacheinander aufgerufen werden. Aber propery änderung an DOM elemente erst im nächsten "draw call" des browser ausgewertet werden.
Und in deinem falle erfolgt dieser "draw call" erst wenn die javascript funktion test zu ende ist.
-
@toom sagte in js, Reihenfolge der Ausgaben erzwingen:
sollte nicht zu erst 'A' dann DIV verschwinden und zum Schluss 'B' ausgegeben werden???
Mach dich mal mit Sichtbarkeits- und Gültigkeitsbereichen in HTML/JS vertraut ...
Zu dem Zeitpunkt der Ausführung des Scripts, gibt es das Element
d1
noch gar nicht, weil es erst weiter unten definiert wurde. => Undefiniertes Verhalten.Eigene script-Blöcke setzt man üblicherweise zwischen
</body>
und</html>
oder direkt vor</body>
. Dann sind die UI-Elemente bereits aufgebaut, die man modifizieren möchte.Der zweite Punkt ist, dass mehrere gleichzeitige Alerts sinnfrei sind und vermieden werden sollten.
-
@Fragender sagte in js, Reihenfolge der Ausgaben erzwingen:
@toom sagte in js, Reihenfolge der Ausgaben erzwingen:
sollte nicht zu erst 'A' dann DIV verschwinden und zum Schluss 'B' ausgegeben werden???
Mach dich mal mit Sichtbarkeits- und Gültigkeitsbereichen in HTML/JS vertraut ...
Zu dem Zeitpunkt der Ausführung des Scripts, gibt es das Element
d1
noch gar nicht, weil es erst weiter unten definiert wurde. => Undefiniertes Verhalten.Eigene script-Blöcke setzt man üblicherweise zwischen
</body>
und</html>
oder direkt vor</body>
. Dann sind die UI-Elemente bereits aufgebaut, die man modifizieren möchte.Der zweite Punkt ist, dass mehrere gleichzeitige Alerts sinnfrei sind und vermieden werden sollten.
Du erzählst mal wieder kompletten blödsinn. Die ausgaben A und B erfolgen in der funktion "test", welche als ein oncklick handler des ersten div elementes angegeben ist...
Daher wird die funktion test erst ausgeführt wenn der nutzer auf das erste div element "klickt"Und script blöcke können auch innerhalb des head blocks definiert werden...
-
@firefly sagte in js, Reihenfolge der Ausgaben erzwingen:
Und script blöcke können auch innerhalb des head blocks definiert werden
Ja, können, aber er greift ohne window/document.onload auf UI-Elemente zu, die noch nicht aufgebaut sind (DOM...).
@firefly sagte in js, Reihenfolge der Ausgaben erzwingen:
kompletten blödsinn
Werd mal etwas freundlicher... Thx.
-
@Fragender sagte in js, Reihenfolge der Ausgaben erzwingen:
@firefly sagte in js, Reihenfolge der Ausgaben erzwingen:
Und script blöcke können auch innerhalb des head blocks definiert werden
Ja, können, aber er greift ohne window/document.onload auf UI-Elemente zu, die noch nicht aufgebaut sind (DOM...).
Dann erklär mal wann das denn angeblich genau passieren soll?
In dem script block wird nur eine funktion definiert und nicht aufgerufen.@firefly sagte in js, Reihenfolge der Ausgaben erzwingen:
kompletten blödsinn
Werd mal etwas freundlicher, insbesondere wenn man keine Ahnung hat ... Thx.
Wovon soll ich angeblich keine Ahnung habe? Kannst du das mal genauer ausführen?
Du hast nur gezeigt dass du keine Ahnung hast. Denn eine reine definition einer funktion in einem script block ist noch kein aufruf dieser funktion!
-
@firefly sagte in js, Reihenfolge der Ausgaben erzwingen:
Denn eine reine definition einer funktion in einem script block ist noch kein aufruf dieser funktion!
Ja, hast recht ... ich hatte das nicht genau gelesen.
-
Hint: https://stackoverflow.com/questions/2920129/can-i-run-javascript-before-the-whole-page-is-loaded
-
@Fragender sagte in js, Reihenfolge der Ausgaben erzwingen:
Hint: https://stackoverflow.com/questions/2920129/can-i-run-javascript-before-the-whole-page-is-loaded
Und? Was hat das jetzt mit diesem Thema zu tun? Das hat null mit der fragestellung von toom zu tun...
-
Doch doch, weil er ja indirekt genau jenes versuchen möchte...
Außerdem kann ein bisschen Vertiefung ja nicht schaden
-
@Fragender sagte in js, Reihenfolge der Ausgaben erzwingen:
Doch doch, weil er ja indirekt genau jenes versuchen möchte...
Außerdem kann ein bisschen Vertiefung ja nicht schaden
Nein tut er nicht. Oder wo liest du das raus?
Er hat gefragt wieso das div element erst unsichtbar wird, nachdem das zweite alert kommt obwohl in der javascript funktion vor dem zweiten alert das display style property auf none gesetzt wurde.
Und diese funktion wird durch einen onclick event handler getriggert.
Mehr nicht.Du interpretierst hier sachen hinnein die gar nicht da sind und zusätzlich hast du schon in deinen vorherigen post bewiesen dass du überhaupt nicht das problem an sich verstanden hast bzw. das beispiel genauer angeschaut hast...
-
Ich hab gesagt, ich hab es nicht gelesen ... das ist etwas anderes, als etwas nicht zu verstehen.
Vielleicht solltest du dir mal 'ne Auszeit nehmen, @firefly .
-
@Fragender sagte in js, Reihenfolge der Ausgaben erzwingen:
Ich hab gesagt, ich hab es nicht gelesen ... das ist etwas anderes, als etwas nicht zu verstehen.
Vielleicht solltest du dir mal 'ne Auszeit nehmen, @firefly .
Du sprichst wirr. in deinem letzten post behauptest du das toom "indirekt genau jenes versuchen möchte"
@Fragender sagte in js, Reihenfolge der Ausgaben erzwingen:
Doch doch, weil er ja indirekt genau jenes versuchen möchte...
Was aber komplett falsch ist. Und wieso gibst du überhaupt weiterhin was von dir, was überhaupt nichts mit dem, bereits gelösten, thema zu tun hat?
Besonders da du wieder behauptet das Thema nicht gelesen zu haben. Wodurch du aber auch indirekt zu gibst keine Ahnung vom Thema zu haben bzw. von der Fragestellung.
Denn wenn man die Ausgangsfrage überhaupt nicht gelesen hat, dann kann man per Definition das Thema auch nicht verstehen, da man sich mit dem Thema dann überhaupt nicht beschäftigt hat.
-
Ist doch gut jetzt. Man kann auch von etwas Ahnung haben, ohne es zu gelesen haben müssen.