Javascript 函数未定义?

Javascript 函数未定义?,javascript,jquery,settimeout,Javascript,Jquery,Settimeout,我正在努力找出为什么setTimeout函数在尝试运行时找不到我的单选按钮标记函数 这是我的密码 var radioButtonTagging = (function(){ console.log('run'); $("span.radio").each(function(i, ele){ $(ele).addClass('radio'+i); });

我正在努力找出为什么
setTimeout
函数在尝试运行时找不到我的单选按钮标记函数

这是我的密码

var radioButtonTagging =  (function(){
    console.log('run');                          
    $("span.radio").each(function(i, ele){
        $(ele).addClass('radio'+i);                     
    });

    $(".radio1").click(function(){
        console.log('fired');
        $('#expandQuestion1').css('display','block');
    });
 });

if($('span.radio').length){
    console.log('run');
    radioButtonTagging();
} else {
    console.log('trying to run timer');
    setTimeout("radioButtonTagging()",2000);
}

我基本上只是在寻找一个带有类收音机的跨度,然后再添加一个带有收音机的类和索引

我之所以使用setInterval,是因为当它第一次尝试启动时,span没有就位,因为它们是通过jquery插入的。。所以在文档准备过程中没有完成


如果您正在将字符串传递给
setInterval
,则任何帮助都将非常有用,因此它将在不同的范围内求值。由于您要查找的函数的作用域是本地的,因此它找不到它


不要将字符串传递给
setInterval
,传递函数。

您正在将字符串传递给
setInterval
,因此它在不同的范围内求值。由于您要查找的函数的作用域是本地的,因此它找不到它

不要将字符串传递给setInterval,传递函数。

试试这个

setTimeout(function(){ radioButtonTagging() },2000);
试试这个

setTimeout(function(){ radioButtonTagging() },2000);
尝试: 设置超时(radioButtonTagging,2000)

请看这里: 试试: 设置超时(radioButtonTagging,2000)

请看这里:

这是多余的。只需使用
radioButtonTagging
,这是等效的,但不会吞下返回值。这是多余的。只需使用
radioButtonTagging
,这是等效的,但不会吞下返回值。