在jquery中使用setTimeout()

时间:2010-02-07 03:37:11

标签: javascript jquery

我不是Javascript的新手,但后来我意识到我不知道如何使用setTimeout()

我试过这个:

$(document).ready(function(){

  setTimeout('changeit()',1000); // I have also tried setTimeout('changeit',1000);
  // var t = setTimeout('changeit()',1000); <--- tried also something like this.

  // changeit(); <-- works when i do this.

  function changeit(){
    $('#hello').html('Hello World - this was inserted using jQuery');
    // #hello is <p id="hello">Hello World</p>
  }
})

任何人都可以帮我这个吗?

3 个答案:

答案 0 :(得分:4)

传递对changeit函数的引用,而不是JavaScript代码字符串。

$(document).ready(function() {
    setTimeout(changeit, 1000);
    function changeit() {
        $("#hello").html("Hello world - this was inserted using jQuery.");
    }
});

答案 1 :(得分:1)

怎么样:

setTimeout(changeit, 1000);

答案 2 :(得分:1)

这样做:

$(function() {
  setTimeout(changeit, 1000);
});

function changeit() {
  $('#hello').html('Hello World - this was inserted using jQuery');
}

或者这个:

$(function() {
  setTimeout(changeit, 1000);
  function changeit() {
    $('#hello').html('Hello World - this was inserted using jQuery');
  }
});

您的版本存在的问题是您正在将字符串传递给setTimeout(),而该字符串已被评估,但到那时changeit()超出了范围,因此无效。

另一种方法是将changeit设为全局(根据第一个代码段)。