Bertel Lund Hansen
2018-07-24 09:06:19 UTC
Nu er jeg færdig med at arbejde med selve uret.
Opsætningsprogrammet har flere ulogiske ting, men det kommer
senere.
Jeg opdagede et fif som I måske godt kender. I ur-scriptet
tjekker jeg et par steder om et ur (uf af tre) er sat til at
vises. Det udløser jo en fejl hvis jeg bruger getElementById()
og feltet ikke findes. Det er fint nok.
Men en anden løsning er at give de tre felter samme klasse og så bruge
getElementsByClassName()
som returnerer et array. Så er man sikker på at arrayets
elementer er til stede. Her er en funktion der udnytter det
forhold (15 linjer):
function hideAllButtons () {
var status=document.getElementsByClassName('toggdiv');
var prompt, newstatus;
if (status[0].style.display==='none') {
newstatus='block';
prompt='Hide almost all buttons';
}
else {
newstatus='none';
prompt='Show all buttons';
}
for (n=0; n<status.length; ++n)
status[n].style.display=newstatus;
document.getElementById('hideButtons').innerHTML=prompt;
}
Den tilsvarende funktion med id bruger 20 linjer.
PS: Jeg har ikke taget højde for at man kan slå alle tre ure fra.
Det vil give en fejl (status[0] er udefineret).
Opsætningsprogrammet har flere ulogiske ting, men det kommer
senere.
Jeg opdagede et fif som I måske godt kender. I ur-scriptet
tjekker jeg et par steder om et ur (uf af tre) er sat til at
vises. Det udløser jo en fejl hvis jeg bruger getElementById()
og feltet ikke findes. Det er fint nok.
Men en anden løsning er at give de tre felter samme klasse og så bruge
getElementsByClassName()
som returnerer et array. Så er man sikker på at arrayets
elementer er til stede. Her er en funktion der udnytter det
forhold (15 linjer):
function hideAllButtons () {
var status=document.getElementsByClassName('toggdiv');
var prompt, newstatus;
if (status[0].style.display==='none') {
newstatus='block';
prompt='Hide almost all buttons';
}
else {
newstatus='none';
prompt='Show all buttons';
}
for (n=0; n<status.length; ++n)
status[n].style.display=newstatus;
document.getElementById('hideButtons').innerHTML=prompt;
}
Den tilsvarende funktion med id bruger 20 linjer.
PS: Jeg har ikke taget højde for at man kan slå alle tre ure fra.
Det vil give en fejl (status[0] er udefineret).
--
/Bertel
/Bertel