您的位置:首页 > Web前端 > JavaScript

javascript小记——setTimeout调用方法总是提示未定义??

2016-06-23 17:09 519 查看
这两天遇到项目中碰到的一个问题:定义了一个方法以后,在调用的时候总是提醒我方法没有定义,然后我就懵了......


function countdown_mcode(second){
var mcode=$(".checkcodeBtn");
if(second>0){
mcode.css({"width":"80px","color":"#eee"});
mcode.html('重新获取'+second);
second--;
setTimeout("countdown_mcode("+second+")",1000);
}else{
mcode.html('重新获取');
mcode.css({"color":"#fff"})
mcode.removeAttr('replay');
}
}


这是倒计时的方法,我定义在了$(document).ready()方法中,然后,就报错了。为什么呢?

首先来说说这个setTimeout方法:

setTimeout这个方法是window对象的方法,用于在指定的毫秒数后调用函数或计算表达式。

window对象,window对象,window对象!!!

也就是说这个方法是执行在全局作用域下,而我定义的方法没有在全局作用域下,肯定找不到了。之前的一篇博客有写到js中的作用域链问题。请点击这里

ok,圆满解决!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript 函数