[latex]Mae govannen![/latex]
Sorry, ich hätte es dazuschreiben oder besser formulieren sollen.
Die Gedanken bezogen sich auf genau diesen Thread, welche Version für einen Javascriptanfänger wohl am besser geeignet ist.
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.
Ich hab dich recht verstanden, daß du in deiner Bemerkung...
Bei der split()-Version wäre es einfach, eine Funktion zu schreiben, die mit einem Aufruf gleichzeitig Elemente ein- und andere > >ausblendet, function blocks_an_aus (an, aus), wobei an und aus die jeweiligen Id-Listen wären.
...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?
Mit Strings:
function blocks_an_aus(show_ids, hide_ids) {
var el, IdArr, i;
if (document.getElementById) {
IdArr = show_ids.split(" ");
for (i = 0; i < IdArr.length; i++) {
el = document.getElementById (IdArr[i]);
if (el && el.style) {
el.style.display = 'block';
}
}
IdArr = hide_ids.split(" ");
for (i = 0; i < IdArr.length; i++) {
el = document.getElementById (IdArr[i]);
if (el && el.style) {
el.style.display = 'none';
}
}
}
}
blocks_an_aus('box1 box2 box4','box3 box5');
mit Objekt-Literal:
var idliste = {
box1: "an",
box2: "an",
box3: "aus",
box4: "an",
box5: "aus"
};
function blocks_an_aus(id_liste) {
var el, el_id;
if (document.getElementById && id_liste) {
for (el_id in id_liste) {
el = document.getElementById(el_id);
if (el && el.style) {
if (id_liste[el_id] == 'aus') {
el.style.display = 'none';
}
else {
el.style.display = 'block';
}
}
}
}
}
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)
function blocks_an_aus(id_liste) {
var el, el_id;
if (typeof document.getElementById === 'function' && typeof id_liste === 'object') {
for (el_id in id_liste) {
el = document.getElementById(el_id);
if (el && typeof el === 'object' && el.style) {
el.style.display = (id_liste[el_id] == 'aus') ? 'none' : 'block';
}
}
}
}
Code ist ungetestet.
Cü,
Kai
Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
Sacrifice - the future has it's price
And today is only yesterday's tomorrow
selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?