Avatar billede Slettet bruger
12. november 2005 - 17:24 Der er 13 kommentarer og
1 løsning

Problem med show / hide script

Jeg har fundet det her script http://www.eksperten.dk/spm/106354 (nikolajdu's svar) og det virker fint nok. Jeg implemnterer det sådan her:



   
<h1><a href="#3" onClick="showhide('3')">Test</a></h1>

<em>12. november 2005 kl. 16:16:08</em><br>

<div style="visibility: hidden;" id="3">
Her Her kommer teksten Her kommer teksten Her kommer teksten Her kommer teksten <br>
Her Her kommer teksten Her kommer teksten Her kommer teksten Her kommer teksten <br>
Her Her kommer teksten Her kommer teksten Her kommer teksten Her kommer teksten <br>
Her Her kommer teksten Her kommer teksten Her kommer teksten Her kommer teksten <br>
Her Her kommer teksten Her kommer teksten Her kommer teksten Her kommer teksten <br>
</div>




   
<h1><a href="#4" onClick="showhide('4')">Test2</a></h1>

<em>12. november 2005 kl. 16:16:08</em><br>

<div style="visibility: hidden;" id="4">
Her Her kommer teksten Her kommer teksten Her kommer teksten Her kommer teksten <br>
Her Her kommer teksten Her kommer teksten Her kommer teksten Her kommer teksten <br>
Her Her kommer teksten Her kommer teksten Her kommer teksten Her kommer teksten <br>
Her Her kommer teksten Her kommer teksten Her kommer teksten Her kommer teksten <br>
Her Her kommer teksten Her kommer teksten Her kommer teksten Her kommer teksten <br>
</div>

men problemet er, at den første #3 godt nok kommer frem ved onclick, men selvom man ikke kan se teksten, så fylder den stadig ligeså meget. Dvs. der er et kæmpemellemrum mellem hver <h1> - et mellemrum der kun er berettiget v. onclick.. Nogen der kan gennemskue det?
Avatar billede softspot Forsker
12. november 2005 - 17:27 #1
Du skal nok gå efter at bruge display = 'none' og display = 'block' i stedet for at bruge visibility = 'hidden' og visibility = 'visible'...

Elementer der har sat style display = 'none' optager ikke plads i browseren.
Avatar billede softspot Forsker
12. november 2005 - 17:31 #2
Desuden mener jeg ikke det er så godt at bruge tal som id'er for elementer, det skal vist helst være gyldige javascript-identifiers (såvidt jeg har forstået) - selvom det andet ser ud til at fungere... :)
Avatar billede Slettet bruger
12. november 2005 - 17:53 #3
det var sørme bare det, der skulle til. Hvad mener du med din kommentar?
Avatar billede softspot Forsker
12. november 2005 - 18:02 #4
Jeg synes at have samlet op her på eksperten, at man ikke bør benytte ugyldige javascript-identifiers i id-attributten på elementer (f.eks. id="4").

En valid identifier må f.eks. ikke starte med et tal og må ikke indeholde specielle tegn som +-=,' og hvad der ellers findes af tegn der har speciel betydning i javascript. Generelt set bør man holde sig til bogstaver (som findes i det amerikanske alfabet) og efterfølgende tal og underscore (_) til identifiers.
Avatar billede softspot Forsker
12. november 2005 - 18:12 #5
Tak for point :)
Avatar billede rasmus_a Nybegynder
12. november 2005 - 22:15 #6
altså erstatte visibility: hidden med display = none og show med block i js filen?

kan nemlig ikke få det til at virke.
Avatar billede softspot Forsker
12. november 2005 - 22:20 #7
rasmus_a >> er det løsning på det problem i spørgsmålet http://exp.dk/spm/663984 du er på jagt efter? Hvis ja, så vil dette jo kun være en del af løsningen, for du skal vel også have lavet en indikation af om laget er åben eller lukket... eller hvad?
Avatar billede rasmus_a Nybegynder
12. november 2005 - 23:48 #8
ja det er så... altså, ezolu's løsning fungerer fint men problemet er jo altså at der, hvor teksten ligger skjult er der et hvidt blankt felt..
Sådan skal det ikke være. Det skal være som i menuen her på exp.dk (til venstre.

:)
Avatar billede softspot Forsker
13. november 2005 - 01:31 #9
Ja, altså

element.style.display = 'none';

og

element.style.display = 'block';

Du skal jo så også huske at elementerne i udgangspunktet skal sættes til display:none i stedet for visibility:hidden.
Avatar billede roenving Novice
13. november 2005 - 04:46 #10
Et id må ifølge w3c (http://www.w3.org/TR/html401/types.html#type-name) indeholde a-z, tal, bindestreger, underscores, kolon og punktum, men _skal_ starte med et bogstav !-)

-- en javascript-identifier har i princippet intet med dette at gøre og kan udover bogstaver også starte med _ og $ !o]
Avatar billede rasmus_a Nybegynder
13. november 2005 - 10:43 #11
Ah, softspot. Tak!
Men der er lige et problem.. Hvis jeg kigger mit expand link når jeg har scrollet halvt ned på siden så expander den teksten og scroller op til toppen. Kan man få den at expande UDEN at røre ved scoll positionen?
Avatar billede softspot Forsker
13. november 2005 - 10:52 #12
rasmus_a >> refererer du til løsningen til dit spørgsmål http://exp.dk/spm/663984? Hvis ja, så vil jeg foreslå at diskussionen bliver flyttet derover...
Avatar billede rasmus_a Nybegynder
22. november 2005 - 10:00 #13
Softspot, se ovenstående kommentar fra mig, tak :)
Avatar billede softspot Forsker
22. november 2005 - 14:10 #14
Ikke forstået, rasmus_a? Er der mere til det spørgsmål du stillede?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester