webForumDet fria alternativet

Byta bild 2ggr på samma länk

JavaScript

7 svar · 607 visningar · startad av JAreMANNEN

Medlem sedan aug. 20002 272 inlägg
Frågan#1

Hajj hajj!

Funkar det att byta en bild 2ggr när man klickar på samma länk?

Ex.

<a href="#">Byt bild</a>
<img src="bild1.gif">

  1. När sidan laddas så visas bild1.gif
  2. När man klickar på länken så ska "img src" skifta till bild2.gif
  3. Klickar man en andra gång på länken så ska bild1.gif visas igen
    Helst så ska man kunna skifta hur många ggr som hels fram- och tillbaka...

Går detta att lösa?

mvh :)

Medlem sedan sep. 20021 655 inlägg
#2
<script type="text/javascript">
var b = 0;
</script>

<a href="#" onclick="document.getElementById('bilden').src=(++b%2==0)?'bild1.gif':'bild2.gif'">Byt bild</a>

<img src="bild1.gif" id="bilden" />
Medlem sedan aug. 20002 272 inlägg
#3

Alldeles lysande!

Tack!

Medlem sedan aug. 20002 272 inlägg
#4

Detta verkar lite buggigt i IE...
Vissa ggr man klickar på länken så visas inte bilden, men om man högerklickar och väljer "visa bild" (där bilden egentligen skall visas) så kommer bilden fram.
Och ibland visas bara 1/3 av bilden osv.

I FF fungerar det klockrent!

Använder IE 6 SP2 när det inte fungerar

Medlem sedan sep. 20021 655 inlägg
#5

Kanske är det problem med att bilden inte har laddats in.
Testa att ändra till

<script type="text/javascript">
var b = 0;
(new Image()).src = "bild2.gif";
</script>
Medlem sedan aug. 20002 272 inlägg
#6

dectgap skrev:

Kanske är det problem med att bilden inte har laddats in.
Testa att ändra till

<script type="text/javascript">
var b = 0;
(new Image()).src = "bild2.gif";
</script>

Ja, något bättre...
Nu visas den andra bilden korrekt när man klickar på länken.
Men när man sedan klickar igen för att återgå till orginalbilden så visas inte den istället, eller jo delvis..ibland och ibland inte :OO

Medlem sedan sep. 20021 655 inlägg
#7

Det borde inte göra någon skillnad med följande, men det är ändå värt ett försök:

<script type="text/javascript">
var b = 0;
(new Image()).src = "bild1.gif";
(new Image()).src = "bild2.gif";
</script>

Egentligen borde bild1.gif inte behöva förladdas, eftersom den laddas till img-elementet, men som sagt är det värt ett försök.

Medlem sedan aug. 20002 272 inlägg
#8

Äh, det får duga så länge iaf :)

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)