Войти

Показать полную графическую версию : [решено] Подмена картинки


Smasher
08-06-2011, 18:08
Целью является то, чтобы по клику картинка менялась с одной на другую и наоборот.
Вопрос: что я сделал в моём индусском коде не так?

<script>
function flip(n,c) {
document.getElementById("flyer").innerHTML="<a href=\""+src+"\" onClick=\"flip('"+c+"','"+n+"');\"><img src=\""+(c=="/img/flyer.png" ? "/img/flyer_b.png" : "/img/flyer.png")+/></a>";
}
</script>

<div id="flyer"><a onclick="flip('/img/flyer_b.png','/img/flyer.png');"><img src="/img/flyer.png"></a></div>

Так же я только что испробовал такой код:

<SCRIPT>
function change()
{
if (document.getElementById("flyer").src == "/img/flyer.png") document.getElementById("flyer").src="/img/flyer_b.png";
else document.getElementById("flyer").src="/img/flyer.png";
}

</SCRIPT>

<a href="#" onclick="change();"><img id="flyer" src="/img/flyer.png" /></a>

Тоже никак.

Sham
08-06-2011, 21:59
Атрибут img srс в JS по идее содержит полный путь к файлу, а у вас строковое сравнение с частью урла. Из-за этого там всегда false.

Выдирайте имя файла из пути в src и сравнивайте по имени файла.

Smasher
08-06-2011, 22:26
Спасибо, вот так вроде работает :)
function change()
{
if (document.getElementById("flyer").src.split("/")[document.getElementById("flyer").src.split("/").length-1]=="flyer.png") document.getElementById("flyer").src="/img/flyer_b.png";
else document.getElementById("flyer").src="/img/flyer.png";
}

Sham
08-06-2011, 23:40
indexOf (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/indexOf) попроще




© OSzone.net 2001-2012