2015-05-07 2 views
0

Я пытаюсь выполнить переходное состояние от Transition State 1 к Transition State 2Почему после изменения нажмите img src/picture?

Разработана технология, я использую, чтобы выполнить этот JavaScript, поскольку JavaScript может динамически «изменить содержание HTML элементов» - JavaScript

Вот это JFiddle

я увидел, что для изменения ГКЗ тега изображения в HTML, вы должны выполнить эту строку кода (от Change Img Src)

document.getElementById("imageid").src="../template/save.png"; 

Вот весь мой код JavaScript для части изображения меняющегося (с моей JFiddle)

(function() { 
    alert("got here"); 
    function pageLoad() { 
     document.getElementById("choice1").onclick = getPicture("http://i.imgur.com/e95oMVZ.jpg"); 
     document.getElementById("choice2").onclick = getPicture("http://imgur.com/dOlZ19H");  
    } 
    function getPicture(imageUrl) { 
      document.getElementById("picture").src = imageUrl; 
    } 
    window.onload = pageLoad; 
})(); 

Я уверен, что я был следовать соглашения об JavaScript Arguments, проверили мои идентификаторы и закодирован уведомление о чтобы убедиться, что JavaScript был исполнен.

После всего этого, когда я нажимаю на select2, изображение все равно не меняется ... Кто-нибудь знает, в чем проблема?

ответ

4

Вам необходимо установить функцию onclick. Вы вызываете функцию сразу, а не при нажатии элемента.

function pageLoad() { 
    document.getElementById("choice1").onclick = function() { 
     getPicture("http://i.imgur.com/e95oMVZ.jpg"); 
    }; 
    document.getElementById("choice2").onclick = function() { 
     getPicture("http://imgur.com/dOlZ19H"); 
    }; 
} 
+0

Не могли бы вы объяснить это больше? Я вижу, что вы там делали анонимную функцию (wo имя). Почему это не будет вызвано немедленно? До того, как я получил функцию, привязанную к свойству .onclick. Разве это не означает, что .onclick, что эту функцию нужно вызывать, когда элемент щелкнут так же, как ваша анонимная функция? – committedandroider

+0

@committedandroider Потому что нет конца '()'. Ваш код * называется * 'getPicture' с аргументом, поэтому обработчик' onclick' был * возвращаемым значением этой функции *, который является 'undefined'. Чтобы ваш код работал со списком «как есть», вам нужно будет * вернуть * функцию, которая захватила URL-адрес изображения. Обратите внимание, что URL-адрес '# choice2' на самом деле не является образом; это страница imgur. –

+0

@DaveNewton Ahh Я вижу («http://imgur.com/dOlZ19H») в getPicture («http://imgur.com/dOlZ19H») приведет к тому, что эта функция будет немедленно выполнена. Из-за этого, когда вы загружаете страницу, не должно ли изображение быть вторым изображением, а не парнем на ноутбуке? – committedandroider

Смежные вопросы