在日常的javascript编程中,有时会用到setTimeout()这个函数。 setTimeout()有两个参数,第一个是调用的函数,第二个是延时的时间长度。
function addContent(){ ......... } // setTimeout(“addContent()”,500);
在被调用的函数没有参数的情况下,使用起来很方便。如上所示可以轻松实现延时执行addContent()函数0.5秒的功能。 可是如果addContent()有参数,例如
function addContent(id){ ......... } //延时不起作用 setTimeout(“addContent(id)”,500);//延时也不起作用 setTimeout(addContent(id),500);
function addContent(id){
.........
}
//延时不起作用
setTimeout(“addContent(id)”,500);
//延时也不起作用
setTimeout(addContent(id),500);
这确实一个头疼的问题。
这里有一个勉强能解决的方案。
function addContent(id){
。。。
}
function _addContent(id){
return function(){
addContent(id);
}
}
setTimeout(_addContent(id),500);
如上所示,就搞定了。