功能未定义?

时间:2011-04-27 12:29:24

标签: javascript jquery settimeout

我很难找出为什么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);
}

http://pastebin.com/nvacxZGS

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

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

任何帮助都会很棒

3 个答案:

答案 0 :(得分:6)

您正在将字符串传递给setInterval,因此它会在不同的范围内传播。由于您要查找的功能是本地范围的,因此无法找到它。

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

答案 1 :(得分:0)

试试这个

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

答案 2 :(得分:0)

尝试: setTimeout(radioButtonTagging,2000);

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