Fehler in for Schleife

db1

Neues Mitglied
Hallo,
Ich versuche in eine For Schleife Elemente auszublenden was auch funktioniert,
jedoch gibt es den Fehler das:
null is not an object (evaluating 'x.style') obwohl das x vorhanden ist.


for (let i = 0; i < len; i++) {

var weg = "weg_" + i;
var weg = Math.round(Math.random() * (max - min)) + min;


setTimeout(() => {

let x = document.getElementById("img_teil" + i)


x.style.transition = "2s"
x.style.timing = "ease-in-out";
x.style.opacity = "0"
visibility_check = "0";


}, weg);

wenn ich:
x.style.transition = "2s" raus nehme ist der Fehler weg
das opacity = 0 funktioniert auch aber ohne den ease-in-out Effekt.
warum hat x.style.transition = "2s"; null is not an object (evaluating 'x.style') ??


wo hab ich da den Fehler ?

lg
Guenther


//end for
}
 

KonradN

Super-Moderator
Mitarbeiter
Der Code ist so schwer lesbar. Das wäre mit sinnvoller Formatierung vermutlich einfacher. Dazu bitte Code auch wirklich als Code posten. Dazu dient der Knopf </> links oberhalb des Eingabebereiches. Dann kommt ein Popup, bei dem Du die Sprache (JavaScript) auswählen und den Code dann posten kannst.

Dann wäre es evtl. sinnvoll, konsequent ; nach Anweisungen zu setzen, denn ich vermute, dass Du keinerlei Tools zur Absicherung einsetzt. Da ist es durchaus sinnvoller, diese altmodisch beizubehalten. Aber das ist nur eine reine Empfehlung.

du willst doch nur einen timestamp haben, aber keinen string
Er will eine Zahl haben - da kommt kein timestamp sondern der timeout in ms. Und das hat er durch die zweite Deklaration, die die erste verdeckt.

Aber zu dem eigentlichen Problem
Ich vermute, dass es Zufall war, dass die Herausnahme dieser einen Zeile dazu führte, dass es plötzlich ging.
getElementbyId hat null geliefert und jede der Zugriffe wäre fehlgeschlagen, so da ein Element nicht gefunden würde.

Generell hast Du ja einen Timeout. Probleme können also sein, dass Deine Grenzen entweder von Anfang an falsch sind unter gewissen umständen oder Du hast das Problem, dass in der Zeit des Timeouts der DOM Tree noch geändert wird.

Aber über die exakte Ursache zu spekulieren bringt hier auch nichts. Die wichtige Lösung ist einfach:

if (!x) return;
Wenn getElementById das Element nicht findet, dann solltest Du diesen Fall berücksichtigen. In diesem Fall ist dann halt nichts zu deaktivieren.
 

KonradN

Super-Moderator
Mitarbeiter
Für mich sind delays und periods in Form von "Zahlen" auch timestamps.
Ich sehe hier durchaus Probleme bei der Wortwahl und daraus resultierende Missverständnisse.

Eine "timestamp" gibt einen klaren Zeitpunkt an. Das ist in der Regel etwas wie: Anzahl Millisekunden seit 1.1.1970 UTC.
Das ist auch eine Zahl und das macht es dann gefährlich.

Denn die Methode verlangt ja eine "duration". Also eine Zeitspanne. Wenn Du mir nun sagst: Ich soll eine Methode mit einer Timestamp aufrufen, dann mache ich das: Ich hole mir date.now() und addiere die 2000 ms, die er warten soll, um die timestamp zu erhalten, an der etas stattfinden soll ... Und statt in 2 Sekunden kommt dann das Event in 56 Jahren :)

Bei einer Wortwahl ist es also immer sehr wichtig, auf möglichst korrekte Begriffe zurück zu greifen und genau zu unterscheiden. Umgangssprachliche Ungenauigkeiten können in einer konkreten Domain sehr fatale Folgen haben...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Fehler im JavaScript? Angular, React, JQuery - Fragen zu JavaScript 2
pkm Expected expression, got keyword 'else' - Fehler Angular, React, JQuery - Fragen zu JavaScript 2
N Hilfe, kann jemand den Fehler finden? Angular, React, JQuery - Fragen zu JavaScript 4
T Finde den Fehler Angular, React, JQuery - Fragen zu JavaScript 5
V Fehler bei Ausführung jar: Java kann nicht installiert werden Angular, React, JQuery - Fragen zu JavaScript 0
B Fehler im JavaScript Angular, React, JQuery - Fragen zu JavaScript 3
D Sontag ? JavaScript fehler ? Angular, React, JQuery - Fragen zu JavaScript 12
R ich finde den fehler nicht im IE Angular, React, JQuery - Fragen zu JavaScript 2
S JavaScript (ECMA) Fehler Angular, React, JQuery - Fragen zu JavaScript 3
D BMI Rechner mit fehler Angular, React, JQuery - Fragen zu JavaScript 3
G Explorer zeigt Fehler auf der Indexseite Angular, React, JQuery - Fragen zu JavaScript 2
G Java Fehler oder was ist das? Angular, React, JQuery - Fragen zu JavaScript 4
M Fehler auf Website mit dem gelben Dreieck Angular, React, JQuery - Fragen zu JavaScript 9
B javascript-fehler in phpscript unter ie6 Angular, React, JQuery - Fragen zu JavaScript 2
G mouseover Fehler bei Netscape Angular, React, JQuery - Fragen zu JavaScript 2
I Wo Liegt der Fehler ?? Angular, React, JQuery - Fragen zu JavaScript 7
G If for Bedingung/Schleife Angular, React, JQuery - Fragen zu JavaScript 2
Lighty Math.pow funktioniert nicht innerhalb Funktion/Schleife Angular, React, JQuery - Fragen zu JavaScript 7
L JavaScript for-Schleife Angular, React, JQuery - Fragen zu JavaScript 5
L for-schleife (JavaScipt) Angular, React, JQuery - Fragen zu JavaScript 6
G Frage zu For-Schleife Angular, React, JQuery - Fragen zu JavaScript 2

Ähnliche Java Themen


Oben