Der Martin: Bilderpopup

Beitrag lesen

Hallo,

Ein paar Kleinigkeiten fallen mir spontan auf:
Du hast _entschieden_ zu viele document.getElementById("piclayer") im Code. Besser ist es, die Referenz auf dieses Objekt nur _ein_ Mal zu ermitteln und in einer Variablen abzulegen und danach nur noch mit dieser Referenz zu arbeiten.
Ich habe es jetzt in jeder Funktion einmal. Oder würde das auch funktionieren, wenn ich in der init-Funktion eine globale Variable anlege?

ja, und das würde ich in so einem Fall vielleicht sogar tun, auch wenn man globale Variablen sonst eigentlich vermeiden möchte.

if(!document.getElementById("piclayer"))mdl.init();

[...]
piclayer = document.getElementById('piclayer');


> Kann ich das noch irgendwie zusammenfassen?  
  
Klar, aber nicht so, wie du es versucht hast.  
  

> Folgendes funktioniert nicht:  
> `if(!var piclayer = document.getElementById('piclayer');`{:.language-javascript}  
  
Stimmt. Eine Deklaration (Keyword var) in der if-Klammer ist nicht erlaubt. Zieh die Deklaration vor:  
  

> ~~~javascript

var piclayer;  

> if (!(piclayer=document.getElementById('piclayer'))) ...

Das Semikolon nach der if-Klammer kann dir übrigens viele Stunden spannender Fehlersuche bescheren. Und zähl mal die Klammern in deinem Beispiel. ;-)

Übersichtlicher sieht das außerdem aus, wenn man die Bedingung in der if-Klammer nicht negiert und stattdessen den if- und den else-Anweisungsblock vertauscht - vorausgesetzt, man hat einen else-Block.

Ciao,
 Martin

--
Wenn zwei dasselbe tun, sind sie vielleicht bald zu dritt.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(