超时后无法更改HTML

Jac*_*Dev 0 javascript jquery

出于某种原因,我无法在javascript超时后更改HTML.这是我正在使用的代码:

setTimeout("$(\"#display p\").html(newDescription);", 250);

这有什么问题吗?如果我删除超时,脚本可以正常工作.这是那个版本:

$("#display p").html(newDescription);

我正在运行Chrome 22,如果这有任何区别的话

pro*_*son 5

是的,第一个参数应该是函数.

var newDescription = 'The Description';
setTimeout(function(){
  $("#display p").html(newDescription);
}, 250);
Run Code Online (Sandbox Code Playgroud)

要么

var newDescription = 'The Description',
    myfunc = function(){
       $("#display p").html(newDescription);
    };

setTimeout(myFunc, 250);
Run Code Online (Sandbox Code Playgroud)

此外,newDescription必须在您的功能可访问的范围内.

  • @prodigitalson:是的.如果你还提到由于不同的上下文而代码在当前形式下不起作用并且JS引擎可能无法解析`newDescription`,那么你将拥有我的+1. (2认同)
  • @prodigitalson:我真的认为它不在全球范围内.否则代码将工作,OP将不需要问:) (2认同)