我正在努力找出为什么 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);
}
我基本上只是在寻找带有 radio 类的跨度,然后添加带有 radio 和索引的进一步类。
我使用 setInterval 的原因是因为当它第一次尝试触发时,span 没有到位,因为它们是通过 jquery 插入的..所以在 doc.ready 期间没有完成..
任何帮助都会很棒
最佳答案
您正在将一个字符串传递给 setInterval
,因此它在不同的范围内被评估。由于您要查找的函数在本地范围内,因此无法找到它。
不要将字符串传递给setInterval
,传递函数。
关于javascript - 功能未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5804112/