Settimeout就在一个函数之后

时间:2013-02-24 22:54:44

标签: javascript jquery html

我正在尝试在另一个函数结束后立即使用removeClass函数,所以我有这个脚本来调用fittocontainer:

    function fittocontainer(){
        $('.fittocontainer').fittocontainer()
    }

我希望在'fittocontainer'函数结束后,应用此函数:

            setTimeout ( function(){
                $('#footer').removeClass("active");
            }) 

如何将setTimeout函数与'fittocontainer()'集成在刚刚结束后才能工作?

2 个答案:

答案 0 :(得分:3)

setTimeout()大约是时间(分钟,秒),如果你只想在最后执行该功能,你可以调用它,或者你可以使用callback函数:

function fittocontainer(callback){
  $('.fittocontainer').fittocontainer();
  callback();
}

然后调用fittocontainer:

fittocontainer(function(){
  $('#footer').removeClass("active");
});

答案 1 :(得分:3)

fittocontainer是你做的功能吗?如果是,并且它是异步的,您将不得不添加一个回调,如:

function fittocontainer (cb) {
  //do some stuff
  cb();
}

然后你可以调用它传递函数甚至是匿名函数,如:

fittocontainer(function () {
  // do stuff afterwards
});

如果此功能正在更新DOM,则很可能是异步的。在异步方法之后使用超时尝试执行代码是非常危险的,永远不应该完成。

如果它是同步的,你可以简单地在下一行调用一个函数,并知道它将在fittocontainer完成后执行。

还要记住你需要在setTimeout上超时,如:

setTimeout(function(){
  $('#footer').removeClass("active");
}, 1000);

超时为1秒