Avatar billede rudi1234 Nybegynder
23. januar 2004 - 10:13 Der er 4 kommentarer og
1 løsning

Dynamisk variabel

Jeg har følgende kode der ved klik på et billede skifter billedet. Der virker, men når jeg har flere billeder (med hvert sit id), så virker det kun "halvt". Når jeg klikke på "pic1", skifter det, men hvis jeg efterfølgende klikker på "pic2", kræver det endnu et klik før det skifter.

Jeg har fundet ud af at det er fordi "var image1" skal være forskellige for hvert billede. For hvis jeg laver 2 javascriptfunktioner (changeimage1 og changeimage2 med hhv. var image1 og var image2 ), så virker det.

Kan det ikke lade sig gøre at bruge samme javascript-funktion, men ligesom definere var image hver gang...:

"var image+(imgId)"

Det kan man gøre i PHP, ved jeg, og det hedder variables variable... Der hedder det f.eks. ${"image" . $imgId}...

Nå, men den mangelfulde kode er:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Nyt dokument</title>
<script>

function changeImage(imgId,img1,img2)
{
    var {image1.imgId} = true;
    if({image1.imgId})
    {
        document.getElementById(''+imgId+'').src = img2;
        {image1.imgId} = false;
    }
    else
    {
        document.getElementById(''+imgId+'').src = img1;
        {image1.imgId} = true;
    }

}

</script>
</head>

<body>
<img id="pic" src="picA.jpg" onclick="changeImage('pic','picA.jpg','picB.jpg');" height="48" width="62" alt="DirchPasser.jpg - 21,53 kb" border="0">
<br><br><br><br>
<img id="pic2" src="picC.jpg" onclick="changeImage('pic2','picC.jpg','picD.jpg');" height="48" width="62" alt="DirchPasser.jpg - 21,53 kb" border="0">


</body>
</html>
Avatar billede nute Nybegynder
23. januar 2004 - 13:15 #1
hmm ... er ikke helt sikker på hvad du egentlig spørger om, men denne lille funktion skifter billederne på en nem måde. hvert billede skifter mellem 2 billeder  - hver gang du klikker på det, så skifter den ...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Nyt dokument</title>
<script>

function changeImage(imgId,img1,img2)
{
    var objImage = document.getElementById( imgId );
    if( objImage )
    {
       
        objImage.src = ( objImage.src.indexOf( img1 ) > -1 ) ? img2 : img1;
    }
}

</script>
</head>
<body>
<img id="pic" src="picA.jpg" onclick="changeImage('pic','picB.jpg','picA.jpg');" height="48" width="62" alt="DirchPasser.jpg - 21,53 kb" border="0">
<br><br><br><br>
<img id="pic2" src="picC.jpg" onclick="changeImage('pic2','picD.jpg','picC.jpg');" height="48" width="62" alt="DirchPasser.jpg - 21,53 kb" border="0">
</body>
</html>

/nute
Avatar billede rudi1234 Nybegynder
23. januar 2004 - 14:12 #2
Nej..., det var nok også lidt kryptisk formuleret... :o)

Din funktion virker efter hensigten, så smid et svar, så får du pointene!
Avatar billede nute Nybegynder
23. januar 2004 - 14:14 #3
*smider svar* og tak :-)
Avatar billede rudi1234 Nybegynder
02. februar 2004 - 20:40 #4
vil du ikke have svar...?
Avatar billede nute Nybegynder
02. februar 2004 - 20:42 #5
ups :-)
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