function未定义?

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

这是我的代码……

 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); } 

http://pastebin.com/nvacxZGS

我基本上只是寻找带有类无线电的跨度,并添加另一个带有无线电加上索引的类。

我之所以使用setInterval是因为当它第一次尝试触发时,因为它们是通过jquery插入的,因此没有到位。所以在doc.ready期间没有完成。

任何帮助都会很棒

您正在将一个字符串传递给setInterval ,因此它在不同的范围内被唤醒。 由于您要查找的function是本地范围,因此无法找到它。

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

试试这个

 setTimeout(function(){ radioButtonTagging() },2000); 

尝试:setTimeout(radioButtonTagging,2000);

见这里: http : //jsfiddle.net/qUAZf/