2

可能重复:
如何将参数传递给 setTimeout() 回调?
是否有充分的理由将字符串传递给 setTimeout?

我想loadPHPQuote(code)在 1 秒后调用一个函数。并希望传递包含数字和文本字符的名为code的参数。但是setTimeout()如果代码包含一个字符,那么只有数字就可以了。

这是我的代码

setTimeout('loadPHPQuote('+code+')',1000);

有没有人可以帮助我解决这个问题......?

4

3 回答 3

3

做这个:

setTimeout(function() { loadPHPQuote(code); }, 1000);
  • 当你使用引号时,它会eval在幕后调用,
  • 当您需要传递参数时,请将其包装在上面的函数中。
  • 为防止立即调用函数,请勿使用()insetTimeoutsetInterval直接使用
于 2012-06-19T09:34:02.607 回答
2

不建议将字符串作为参数传递给setTimeout()(例如,参见MDN)。改用匿名函数:

setTimeout( function(){ loadPHPQuote( code ); }, 1000 );
于 2012-06-19T09:34:21.497 回答
0

您需要将参数放在引号中,因为它是您传递的字符串,例如:

setTimeout('loadPHPQuote("'+code+'")',1000);
于 2012-06-19T09:34:23.147 回答