setTimeout“函数未定义”的问题!

时间:2010-09-20 21:36:58

标签: javascript jquery settimeout

setTimeout的问题“函数未定义”!

此代码有什么问题?

$(document).ready(function(){ 

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

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

});

5 个答案:

答案 0 :(得分:12)

当您eval代码时,它在全局范围内完成。由于您尝试调用的函数是本地作用域,因此失败。

将函数传递给setTimeout,而不是将字符串传递给eval

var t=setTimeout(ISS_NextImage,1000);

答案 1 :(得分:3)

尝试将您的设置超时调用更改为:

var t=setTimeout(function(){ISS_NextImage();},1000);

答案 2 :(得分:1)

避免将字符串传递给setTimeout()。只需传递对函数的引用:

var t = setTimeout(IIS_NextImage, 1000);

答案 3 :(得分:0)

你也可以:

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

答案 4 :(得分:0)

你可以这样做:

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

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