Et notat om, hvordan du viser og skjuler flere elementer ved to på hinanden følgende klik.
Notatet er et addendum til notatet Klik - og klik igen.
Funktionen er her:
Klik en gang på triggeren og elementerne vises. Klik igen, og elementerne forsvinder. Bemærk, at jeg i modsætning til den tidligere artikel her benytter display-egenskaben.
Pointen her er, at den samme funktion viser og skjuler flere elementer på samme tid.
<a href="#"
onclick="toggleDisplay('box');return false;">
Vis/skjul elementer</a>
Den grundlæggende funktion er den samme som i den tidligere artikel,
Klik - og klik igen, det vil sige, vi skal
teste for, om elementernes display-egenskab har den ene
(block) eller den anden (none) værdi.
Hertil kommer, at vi nu opererer med flere elementer, så vis- eller skjul-handlingen skal foretages på hvert af disse.
Det klares lettest ved at give hvert element en id, der indeholder et tal også lave en løkke, der ændrer på display-værdien for hvert element i tur og orden:
hidden = 0 /* Normaltilstand: elementet er skjult */
function toggleDisplay(objekt) {
if (hidden ==0){
for (i=1;i<4;i++){
document.getElementById(objekt+i).style.
--> display="block";
}
hidden=1;
return;
}
else {
for (i=1;i<4;i++){
document.getElementById(objekt+i).style.
--> display="none";
}
hidden=0;
}
}
OBS! hvis du kopierer JavaScript-koden her fra siden er
det bydende nødvendigt at du fjerner -->-tegnene.
Før musen hen over dette tekstafsnit for at vise kasserne.
Der er det interessante ved dette eksempel, at jeg får demonstreret at der er problemløst at lave en mouseover på et vilkårligt element, her et tekstafsnit:
<p id="test"
onmouseover="skiftDisplay('kasse',true);return true;"
onmouseout="skiftDisplay('kasse',false);return true;">
Før musen hen over dette tekstafsnit for
at vise kasserne.</p>
Når vi bruger mouseover og mouseout får vi så at sige kassernes tilstand foræret, idet vi kan sætte en variabel til hhv. true eller false.
Så kommer vores vis-og-skjul funktion til at se således ud:
onoff = 0 /* Normaltilstand: elementet er skjult */
function skiftDisplay(objekt, onoff) {
if (onoff ==1){
for (i=1;i<4;i++){
document.getElementById(objekt+i).style.
--> display="block";
}
onoff=0;
return;
}
else {
for (i=1;i<4;i++){
document.getElementById(objekt+i).style.
--> display="none";
}
onoff=1;
}
}
Denne side er senest opdateret: December 14, 2006