Mam i 3 obrazy, które muszę zmienić jak: obraz 1> obraz 2> obraz 3> obraz 1 i tak dalej w tej pętli.

JavaScript

function changeImage() {

    if (document.getElementById("imgClickAndChange").src = "Webfiles/SUB15_15A.bmp") 
    {
        document.getElementById("imgClickAndChange").src = "Webfiles/SUB15.bmp";
    }

    else if (document.getElementById("imgClickAndChange").src = "Webfiles/SUB15.bmp")
    {
        document.getElementById("imgClickAndChange").src = "Webfiles/SUB15A.bmp";
    }

    else
    {
        document.getElementById("imgClickAndChange").src = "Webfiles/SUB15_15A.bmp"
    }
}

HTML

<img src="Webfiles/SUB15_15A.bmp" id="imgClickAndChange" onclick="changeImage()" usemap="#SUB15" />

Wszelkie sugestie są doceniane. Wszystko, co próbowałem, nie pracowałem.

1
Nick Clark 13 sierpień 2014, 20:43

2 odpowiedzi

Użyj potrójnej równości "===", aby sprawdzić, kiedy SRC jest równoważny, czy nie. Używanie jednego równe "=" oznacza przypisanie wartości, aby nigdy nie przejdziesz po pierwszym, jeśli.

1
robotcookies 13 sierpień 2014, 16:49

Używasz operatora przypisania zamiast operatora porównawczego w swoich oświadczeniach

if (document.getElementById("imgClickAndChange").src = "Webfiles/SUB15_15A.bmp") 

Powinien być

if (document.getElementById("imgClickAndChange").src == "Webfiles/SUB15_15A.bmp") 
//                                                    ^

Również za pomocą właściwości {X0}} jako porównania może nie być dobrym pomysłem, ponieważ przeglądarka może mieć go jako absolutnego adresu URL, a nie względnego adresu URL w atrybucie HTML src, co może być lepsze do użycia.

if (document.getElementById("imgClickAndChange").getAttribute("src") == "Webfiles/SUB15_15A.bmp") 

http://jsfiddle.net/rzannv33/

Zaproponowałem użycie zmiennej, aby zachować stan obrazu, prawdopodobnie prawdopodobnie.

1
Musa 13 sierpień 2014, 16:59