Hallo,
Soll der Code wiederverwendbar sein (dieselbe Funktion in anderen Projekten, oder derselbe Effekt für mehrere Elemente innerhalb eines Projekts), dann übergib der Funktion eine Referenz auf das zu ändernde Element bzw. die Elemente.
Ähm, das verstehe ich jetzt nicht so ganz. Kannst Du mir dafür ein Codebeispiel geben? Was ist "eine Referenz auf das zu ändernde Element"?
dann machen wir mal ein Beispiel. Wir denken uns eine Funktion ShowHide(), die zwei Elemente wechselweise ein- oder ausblendet.
function ShowHide(el1, el2) // Funktion bekommt zwei Elementreferenzen
{ if (el1.style.display=="none" // ist el1 schon ausgeblendet?
{ el1.style.display = ""; // el1 auf CSS-Defaultwert zurücksetzen
el2.style.display = "none"; // el2 unsichtbar machen
}
else
{ el1.style.display = "none"; // siehe oben
el2.style.display = ""; // nur umgekehrt
}
}
Der Aufruf kann nun ganz unterschiedlich aussehen, da diese Funktion völlig isoliert von der Außenwelt ist. Sie muss nicht wissen, wie die Dokumentstruktur aussieht, oder wann und woher sie aufgerufen wird; sie soll nur den Anzeigestatus von zwei Elementen umkehren, deren Referenz(!) sie als Parameter bekommt.
Könnte also aus einem onclick-Eventhandler sein:
<p onclick="ShowHide(this, document.getElementById('SomeOther')">
Hier wird für das erste Element this übergeben, das ist immer eine Referenz auf das "aktuelle" Objekt - in diesem Fall dasjenige, das den Klick erhält. Das zweite Element fische ich anhand seiner ID aus dem Dokument, egal wo es steht.
Wie man hier die beiden Elemente ermittelt, ist aber völlig Banane für den Effekt.
Hilft dir das ein Stück weiter?
So long,
Martin
F: Kennt jemand ein Automobil-Märchen?
A: Radkäppchen und der böse Golf.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(