Avatar billede kischi Novice
09. februar 2011 - 14:15 Der er 7 kommentarer og
1 løsning

hidden field

Hejsa,

Jeg prøver at lave en funtion som når man klikker på et link så bliver noget vist nedenunder.
Det virker også fint, men hvordan gør jeg så hvis jeg opretter et til link som gør det samme at så skal den første test forsvinde.

Jeg håber i forstår hvad jeg mener?
Tak

det her er min kode:

<a href="#" onclick="document.getElementById('foo').style.display = 'block';return false;">foo bar</a>
<div id="foo" style="display: none;">bar</div>
<br><br>

<a href="#" onclick="document.getElementById('foo2').style.display = 'block';return false;">foo bar2</a>
<div id="foo2" style="display: none;">nummer 2"</div>
Avatar billede weinreich Nybegynder
09. februar 2011 - 15:57 #1
Jeg er ikke helt den skarpeste til scripts men du kan jo gøre noget i denne dur:

først lave en metode:

<script>
function HideAllAndDisplayGiven(nameofitemtodisplay)
{
document.getElementById('foo').style.display = 'none';
document.getElementById('foo2').style.display = 'none';
document.getElementById('foo3').style.display = 'none';
//osv...

document.getElementById(nameofitemtodisplay).style.display = 'block';
}

</script>

og så i din kode:

<a href="#" onclick="HideAllAndDisplayGiven('foo');">foo bar</a>
<div id="foo" style="display: none;">bar</div>
<br><br>

<a href="#" onclick="HideAllAndDisplayGiven('foo2');">foo bar</a><div id="foo2" style="display: none;">nummer 2"</div>

Jeg ved at det kan gøres smartere med jQuery og ved at give div'erne classes men det var lige hvad jeg kunne finde på.
Avatar billede HBP2 Praktikant
09. februar 2011 - 23:34 #2
Hvad med at bruge f.eks. jQuery? Så kan onclick() reduceres til noget i stil med:

onclick="$('#nextdiv').show()"

hvor "nextdiv" er id af den <div> som skal vises.
Avatar billede kischi Novice
09. februar 2011 - 23:41 #3
Hejsa,

Det har jeg prøvet nu,

men der sker desværre slet ikke noget nu :(

Nu kommer der slet ikke noget tekst frem når jeg klikker på linksene.

Har jeg gjordt det forkert? min kode ser sådan ud:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">


<script>
function HideAllAndDisplayGiven(nameofitemtodisplay)
{
document.getElementById('foo').style.display = 'none';
document.getElementById('foo2').style.display = 'none';
document.getElementById('foo3').style.display = 'none';
//osv...

document.getElementById(nameofitemtodisplay).style.display = 'block';
}

</script>



</script>
</head>



<body>


<a href="#" onclick="HideAllAndDisplayGiven('foo');">foo bar</a>
<div id="foo" style="display: none;">bar</div>
<br><br>

<a href="#" onclick="HideAllAndDisplayGiven('foo2');">foo bar</a><div id="foo2" style="display: none;">nummer 2"</div>

</body>
</html>
Avatar billede kischi Novice
09. februar 2011 - 23:57 #4
ok the div class is done:

<div id="foo2" class="displayDiv" style="display: none;">nummer 2"</div>
Avatar billede kischi Novice
09. februar 2011 - 23:58 #5
woops sorry
Avatar billede webblaster2011 Nybegynder
11. februar 2011 - 12:01 #6
sæt en klasse på dine links f.eks. sådan her

<a class="ShowFoo">foo bar</a>
<div id="foo" >bar</div>


$('#foo').hide();
$('.ShowFoo').click(function(){

$('#foo').show();

});
Avatar billede kischi Novice
11. marts 2011 - 08:13 #7
hej igen,

Undskyld det har taget så lang tid for mig at svare.
Men det virker, hvis du sender det som et svar, så skal jeg nok lukke og give point. :)

Tak
Avatar billede kischi Novice
02. oktober 2012 - 18:04 #8
svar
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