проблема с setTimeout "функция не определена"! - PullRequest
4 голосов
/ 21 сентября 2010

проблема с setTimeout "функция не определена"!

В чем проблема в этом коде?

$(document).ready(function(){ 

 function ISS_NextImage() { //ImageSlideShow NextImage
  $('.ImageSlideShow').each(function() {
   alert($(".correntImage", this).text());
  });
 }

 var t=setTimeout("ISS_NextImage();",1000);

});

Ответы [ 5 ]

12 голосов
/ 21 сентября 2010

Когда вы eval кодируете, это делается в глобальной области видимости.Поскольку функция, которую вы пытаетесь вызвать, имеет локальную область действия, это завершается ошибкой.

Передайте функцию в setTimeout вместо передачи строки для eval ed.

var t=setTimeout(ISS_NextImage,1000);
3 голосов
/ 21 сентября 2010

Попробуйте изменить установленное время ожидания вызова следующим образом:

var t=setTimeout(function(){ISS_NextImage();},1000);
1 голос
/ 21 сентября 2010

Избегайте передачи строки в setTimeout (). Просто передайте ссылку на функцию:

var t = setTimeout(IIS_NextImage, 1000);
0 голосов
/ 13 февраля 2012

Вы можете сделать что-то вроде этого:

$(document).ready(function(){ 
    setTimeout(ISS_NextImage,1000);
});

function ISS_NextImage() { 
    $('.ImageSlideShow').each(function() {
      alert($(".correntImage", this).text());
    });
 }
0 голосов
/ 21 сентября 2010

Вы также можете:

$(function() { 
    var t = setTimeout(new function() {
       $('.ImageSlideShow').each(function() {
           alert($(".correntImage", this).text());
       });
    }, 1000);
});
...