setTimeout()不允许我传递文本值

时间:2012-06-19 09:32:34

标签: javascript

  

可能重复:
  How can I pass a parameter to a setTimeout() callback?
  Is there ever a good reason to pass a string to setTimeout?

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

这是我的代码

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

有没有人可以帮我这个.....?

3 个答案:

答案 0 :(得分:3)

这样做:

setTimeout(function() { loadPHPQuote(code); }, 1000);
  • 当您使用引号时,它会在场景后面调用eval
  • 当你需要传递参数时,将它包装在上面的函数中。
  • 要立即阻止调用功能,请勿直接在()setTimeout使用setInterval

答案 1 :(得分:2)

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

setTimeout( function(){ loadPHPQuote( code ); }, 1000 );

答案 2 :(得分:0)

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

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