javascript - 功能未定义?

标签 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

我基本上只是在寻找带有 radio 类的跨度,然后添加带有 radio 和索引的进一步类。

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

任何帮助都会很棒

最佳答案

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

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

关于javascript - 功能未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5804112/

相关文章:

javascript - setTimeout ReactJS 与箭头函数 es6

javascript - 在哪里处理父子事件 React

javascript - 结合显示/隐藏切换与单选按钮和复选框

javascript - 为公共(public) API GET 请求构建 JQuery getJSON 的查询字符串

javascript - jquery split() 问题

javascript - 如何将 React 的 getDerivedStateFromProps 与 setTimeout 一起使用?

javascript - 使用js动态更改css类

javascript - jQuery 过滤具有多个属性的元素

jQuery 幻灯片从图像顶部切片

javascript - 如何在 ES6 或 Javascript 中的 settimeout 函数之后触发不受我们控制的函数?