TypeError ist Null?

7

Dies ist ein Fehler in Firebug, den ich sehe.

%Vor%

Hier ist mein Code:

JS

%Vor%

HTML

%Vor%

CSS

%Vor%     
L84 26.09.2012, 23:32
quelle

3 Antworten

12

Ich habe mehrere Skripte auf dieser Seite ausgeführt und offensichtlich war ein Skript mit einem anderen in Konflikt. Um mein Problem zu lösen, habe ich jQuery.noConflict ();

hinzugefügt %Vor%     
L84 26.09.2012, 23:51
quelle
25

Ich möchte auch hinzufügen - weil dies das # 1 Google-Suchergebnis für die wichtige Fehlermeldung "TypeError: [x] ist null" ist - das ist der häufigste Grund, warum ein JavaScript-Entwickler das bekommen wird, dass er es versucht Zuweisen eines Ereignishandlers zu einem DOM-Element, aber das DOM-Element wurde noch nicht erstellt.

Code wird grundsätzlich von oben nach unten ausgeführt. Die meisten Entwickler stellen ihr JavaScript in den Kopf ihrer HTML-Datei. Der Browser hat HTML, CSS und JavaScript vom Server erhalten. ist "Ausführen" / Rendern der Webseite; und führt das JavaScript aus, aber es ist nicht weiter unten in der HTML-Datei gekommen, um den HTML-Code "auszuführen" / zu rendern.

Um damit umgehen zu können, müssen Sie vor der Ausführung von JavaScript eine Verzögerung einführen, indem Sie es in eine Funktion einfügen, die erst aufgerufen wird, wenn der Browser den gesamten HTML-Code "ausgeführt" hat und das Ereignis "DOM ready" auslöst.

Verwenden Sie bei reinem JavaScript window.onload:

%Vor%

Verwenden Sie mit jQuery Dokument bereit:

%Vor%

Auf diese Weise wird Ihr JavaScript erst ausgeführt, wenn der Browser das DOM erstellt hat, das HTML-Element existiert (nicht null :-)) und Ihr JavaScript es finden und einen Event-Handler anhängen kann.

    
Andrew Koper 27.08.2013 15:43
quelle
0

Ich stimme den obigen Hinweisen in Bezug auf das Onload-Ereignis zu. Ссылка

Eine einfachere (wenn auch nicht unbedingt bessere) Lösung besteht darin, das Skript-Tag unmittelbar vor das schließende body-Tag des Dokuments zu setzen.

%Vor%     
Daniel Dropik 27.11.2013 18:04
quelle

Tags und Links