2009-09-08 21 views
6

Ich bin neu bei Javascript und während es viele komplexere Lösungen sind, verstehe ich sie nicht und hoffe, ich muss an dieser Stelle nicht.Ändern IMG SRC mit Javascript

ich ein Hauptbild haben ...

<img src="main-picture.jpg" name="Mainpic" id="image"> 

... und ich möchte in der Lage sein, dieses Bild zu ändern, wenn ich auf einem von zwei Thumbnails klicken.

<a href="" onclick="FirstPic()"><img src="replacement1.jpg" name="pic1"></a> 
<a href="" onclick="SecPic()"><img src="replacement2.jpg" name="pic2"></a> 

Mein JavaScript-Code dachte ich wäre super einfach. Ich bin derzeit mit ...

function FirstPic(){ 
     document.Mainpic.src = document.pic1.src 
     return 
    } 

function SecPic(){ 
     document.Mainpic.src = document.pic2.src 
     return 
    } 

Nun ist die Variable ist ändert aber es ist nicht bleiben geändert. Wenn das Vorschaubild angeklickt wird, blinkt das Ersatzbild auf dem Bildschirm und kehrt dann zum ursprünglichen Hauptbild.jpg zurück.

Wie mache ich die Änderung dauerhaft, bis eine andere Miniatur angeklickt wird?

Danke!

Antwort

6

Ich denke, es wird zurückgedreht, weil Ihre Seite neu geladen wird.

Sie müssen von Ihrem onclick = false zurückgeben = wenn Sie nicht möchten, dass der href = Wert nach Ihrem onclick aktiviert wird.

Sie können auch href = "#" nur für den Fall einstellen. # Geht nirgendwo (nicht immer die Seite neu laden)

+2

Mit anderen Hinweis, ich denke, Sie können Link-Tag und schreiben Sie das Click-Ereignis auf das Bild selbst. – Biswanath

+1

JasonWoof, das hat perfekt funktioniert, danke. Biswanaths Antwort funktionierte jedoch auch perfekt und war effizienter, so dass ich das Link-Tag einfach losgeworden bin. –

+1

Wenn Sie # hinzufügen, wird ein Bildlauf zum Anfang der Seite durchgeführt, wenn die Seite gescrollt werden kann, und ein Schritt in der Verlaufsliste hinzugefügt. Sie müssen also wirklich false aus dem Handler zurückgeben '' –

0

Warum nicht etwas tun (nicht überprüft die Syntax komplett, so könnte es fehlerhaft sein.

function FirstPic() 
{ 
    var pic1 = document.getElementById("pic1"); 
    if (pic1 == typeof('undefined')) return; 
    pic1.src = "newpicname.jpg"; 
} 

Stellen Sie sicher, geben Sie die Tags ein ID-Attribut pic1 und pic2 (anstelle eines Namensattribut) genannt und geben dem Bild selbst ein ‚Onclick‘ Attribut ...

<img onclick='FirstPic()' id='pic1' src='image1.jpg' />