Einzelnen Beitrag anzeigen
  #3 (permalink)  
Alt 12.04.2017, 13:48
GeneralMops GeneralMops ist offline
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 11.04.2017
Beiträge: 12
GeneralMops befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von cloned Beitrag anzeigen
Hier noch weitere Hinweise zur Grundfunktion von Javascript:
Auf Variablen kann erst zugegriffen werden, nachdem sie referenziert wurden. Greift man auf nicht deklarierte Variablen zu, dann fliegt ein Fehler.
jQuery verwendet die Variable $, schreibt man nun ein jQuery Plugin so greift diese auf $(".meinElement").addClass() zu, was natürlich erst existiert, nachdem jQuery geladen wurde.

Man muss das Javascript für das Plugin erst aufrufen, nachdem jQuery geladen wurde, dann ist $ auch für jQuery definiert. Vielleicht ist das Plugin so schlampig geschrieben, dass es zwingend inline Javascript verwendet?
Dann müsstest du das inline JS auslagern und in ein separates JS-File geben.

Edit: ad "Ich dachte, dass durch das "späte" Laden von Javascript nur einfach der normale Seitenaufbau beschleunigt werden soll"
Ja, er wird deshalb beschleunigt, weil: Trifft ein Browser auf eine .js Datei dann lädt er die erstmal runter. Ist er damit fertig, schaut er, was danach kommt. Das, was in der JS Datei steht, wird auch gleichzeitig ausgeführt und interpretiert. Fügst du die Dateien erst am Ende ein, dann wird das parsen der .js-Datei erst gemacht, nachdem das gesamte HTML da ist. Dem User fällt es dann nicht mehr auf, dass der Browser im Hintergrund noch weiter rechnet.

Edit 2:
Auch hier wieder der Hinweis auf die Konsole der Browser Entwicklertools, dort solltest du das sofort sehen. Verwendest du diese eigentlich?
Okay, danke für den Tipp. Tatsächlich wurde ein Inlineskript im Head eingefügt. Wenn ich das in meine eigene JS-Datei einfüge, die ich erst nach dem jQuery aufrufen lasse, funktioniert alles.

Und ja, ich schau in die Konsole. Meistens...


Cheers,
Mops
Mit Zitat antworten