2016-11-22 4 views
2

Это так просто, я не уверен, почему у меня проблемы с ним. Я пытаюсь имитировать флип-карту между двумя изображениями, поэтому при нажатии на нее просто изменится на другое изображение. У меня возникли проблемы с оператором if/else, потому что каждый раз, когда нажимается изображение, он никогда не переходит в другую часть. В исходном коде HTML-страницы src изображения изменяется, но каждый раз передает оператор if.Javascript: изменение img src onclick работает только один раз

(function() { 

    // attaches event handler to image 
    window.onload = function() { 

     var image1 = document.getElementById("image1"); 
     image1.onclick = changeImage; 
    }; 

    // changes image when clicked to flip from image to text and text to image 
    function changeImage() { 
     if (document.getElementById("image1").src = "img/top.png") { 
      document.getElementById("image1").src = "img/toptext.png"; 
      //window.alert('hi'); 
     } 
     else { 
      window.alert('it passed'); 
      document.getElementById("image1").src="img/top.png"; 
     } 
    } 
})(); 
+2

Проверьте оператор сравнения в вашем, если заявлении, намек вы Арент используя один –

+1

** если ** условие утверждения является проблемой. Замените равную метку ** = ** для сравнения равной отметки ** == **. – Anson

ответ

7

использование == или === для сравнения в случае если проверка состояния.

using = будет присваивать значение и всегда быть истинным, поскольку назначенная строка не является пустой строкой.

function changeImage() { 
     if (document.getElementById("image1").src == "img/top.png") { 
      document.getElementById("image1").src = "img/toptext.png"; 
      //window.alert('hi'); 
     } 
     else { 
      window.alert('it passed'); 
      document.getElementById("image1").src="img/top.png"; 
     } 
    } 
+0

_ «всегда быть правдой». _ Это будет только так, если назначенное значение правдиво –

+0

@PatrickEvans да, я согласен, но в этом условии, когда назначенная строка не является пустой строкой, она всегда будет правдой? – Deep

+0

Я также должен был использовать .getAttribute ("src") при выполнении сравнения в инструкции if. Благодаря! – Alex

2

Вы должны использовать == для Условного comparaison

if (document.getElementById("image1").src = "img/top.png") { 

изменения в

if (document.getElementById("image1").src == "img/top.png") { 
Смежные вопросы