Hallo Kai
Zuerst scheint meine Version sicherlich wesentlich komplizierter zu sein, aber andererseits ist sie durch weniger Code innerhalb der Funktion auch wieder einfacher. Es ist also eigentlich nur eine Frage, wie gut oder schlecht jemand die eine oder andere Variante verstehen und nachvollziehen kann.
Auch, wenn der Code innerhalb einer Funktion nicht unnötig verkompliziert werden sollte, halte ich es für wichtiger, dass der Aufruf einfach und eindeutig definiert ist.
...meinst, daß die Funktion im ersten Parameter alle ids enthält, die eingeblendet werden und im zweiten Parameter alle ids, die ausgeblendet werden, jeweils als ein String mit z.B. leerzeichen?
Ja
Mit Strings:
Aufruf:
blocks_an_aus('box1 box2 box4','box3 box5');
mit Objekt-Literal:
Aufruf:
var idliste = {
box1: "an",
box2: "an",
box3: "aus",
box4: "an",
box5: "aus"
};
blocks_an_aus(id_liste);
Die Funktion ist zwar etwas kürzer.
Ist der Aufruf aber einfacher praktikabler und verständlicher?
Ich würde dann auch nicht krampfhaft alles in eine Funktion quetschen sondern eine Funktion verwenden, die die bisherige Funktion einmal mit 'aus' und einmal mit 'an' aufruft.
> Ich würde das für meinen Einsatz noch optimieren und strengere Überprüfungen nutzen: (das ist für Anfänger natürlich nicht mehr geeignet)
Nur befinden wir uns in einem Thread, wo es genau darum geht, einem Anfänger eine für ihn einfach zu verwendende und verständliche funktionierende Funktion zu entwickeln.
Auf Wiederlesen
Detlef
--
- Wissen ist gut
- Können ist besser
- aber das Beste und Interessanteste ist der Weg dahin!