Kezdőoldal » Számítástechnika » Programozás » Miért csak egyszer tudom...

Miért csak egyszer tudom kicserélni a két képet? (JavaScript)

Figyelt kérdés

Egy olyan kis JavaScript cuccról lenne szó, ami ha rákattintunk egy képre, akkor átvált egy másikra, ha pedig újra rákattintunk, visszahozza az eredeti képet. A következő kódot gépeltem be:


<html>

<head>

<meta http-equiv = "Content-Type" content = "text/html; charset = utf-8"/>

</head>

<script language = "javascript">

function changeImage() {

if(document.images['smiley'].src = "smile.jpg") {

document.images['smiley'].src = "sad.jpg";

}


else if(document.images['smiley'].src = "sad.jpg") {

document.images['smiley'].src = "smile.jpg";

}


//Ez az else ág soha nem fog végrehajtódni

else {

alert('Ez nem történhet meg');

}

}

</script>

<body>

<img name = "smiley" src = "smile.jpg" onclick = "changeImage()">

</body>

</html>


Megnyitom a böngészőmmel, a kép meg is jelenik. Rákattintok, átváltja a képet, idáig jó. Ha még egyszer rákattintok, nem hozza vissza az eredeti képet. Mit rontottam el?



2013. aug. 17. 16:42
 1/6 A kérdező kommentje:
Közben észrevettem hogy az if-ek feltételét elrontottam, == helyett csak egy = jelet írtam, de azt kijavítottam. Így viszont az elvileg lehetetlen else ág hajtódik végre! Pedig ugyanabban a könyvtárban van a html fájl és a két kép, és a neveket is jól írtam mindenhol.
2013. aug. 17. 16:47
 2/6 anonim ***** válasza:

Segíts magadon, isten... illetve a JS is megsegít.


Az alert-ben írasd ki, mi van a document.images['smiley'].src-ben, és meglátod, mi a gond.

2013. aug. 17. 16:53
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:

Használd ezt az if-en belül:

document.images['smiley'].attributes['src'].value

2013. aug. 17. 17:36
Hasznos számodra ez a válasz?
 4/6 SimkoL ***** válasza:

function changeImage() {

if(document.images['smiley'].src = "smile.jpg")

{

document.images['smiley'].src = "sad.jpg";

}

else

{

document.images['smiley'].src = "smile.jpg";

}

}


Ha a "smile.jpg" van a képen lecseréli "sad.jpg"-re ha nem az van akkor lecseréli "smile.jpg"-re.


Nem kell túlbonyolítani.

2013. aug. 17. 21:18
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:
SimkoL: Ez volt az ő kódjában is, csak a másik esetet külön vizsgálta. Ez nem jó. Az src property újra kiolvasáskor az abszolút elérési utat adja, így soha nem lesz egyenlő a "smiley.jpg"-vel. (Ezért futott a kérdezőnek mindig a 2. else ágra). Ezért kell úgy lekérni az src értékét, ahogy korábban írtam.
2013. aug. 18. 06:38
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Köszönöm szépen mindegyik választ, hasznos volt :)
2013. aug. 18. 09:02

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!