2016-06-21 3 views
0

Удивительно, почему следующий код не изменит мой img src. Закомментированный пример работает отлично. И предупреждение срабатывает каждые 4 секунды. Замена src просто не работает внутри функции заданного интервала.setinterval не работает для изменения изображения src

$(document).ready(function(){ 
    $(".samples_1_1").on("click", function(){ 
     alert('asdf'); 
     //$(this).attr("src", "../../static/results/samples_1_2.png"); 
     setInterval(function() { 
      alert('alert 1'); 
      $(this).src("src", "../../static/results/samples_1_2.png");   
     }, 4000); 
     }); 
    }); 
+0

См. Http://stackoverflow.com/questions/10944004/how-to-pass-this-to-window-setinterval - это внутри setInterval относится к объекту окна. Вам нужно передать явное указание на это –

ответ

1

Во-первых, во втором примере вы используете .src(), которого не существует. Используйте .attr(), как и раньше. Во-вторых, ключевое слово $(this) теперь находится внутри собственной функции, что делает его неопределенным. Вам нужно будет указать элемент вручную, используя $(".samples_1_1").attr("src", "../../static/results/samples_1_2.png");

+0

Нет, это не так. Я просто пытался что-то сделать. Виноват. В реальном коде это то же самое, $ (this) .attr ("src", "../../static/results/samples_1_2.png"); – mobone

+0

К сожалению, я заметил эту проблему и теперь пересмотрел свой ответ :) – Ian

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