1

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

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

我希望在函数“fittocontainer”结束后,应用这个函数:

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

如何将 setTimeout 函数与“fittocontainer()”集成以在它刚刚结束后工作?

4

2 回答 2

3

setTimeout() 是关于时间(分钟,秒),如果你只想在最后执行那个函数,你可以直接调用它,或者你可以使用回调函数:

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

然后调用 fittocontainer:

fittocontainer(function(){
  $('#footer').removeClass("active");
});
于 2013-02-24T22:59:55.973 回答
3

fittocontainer 是您制作的功能吗?如果是这样,并且它是异步的,则必须添加如下回调:

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

然后你可以通过一个函数甚至匿名函数来调用它,比如:

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

如果这个函数正在更新 DOM,它很可能是异步的。在异步方法之后使用超时来尝试执行代码是非常危险的,永远不应该这样做。

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

另请记住,您需要在 setTimeout 上设置超时,例如:

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

这是1秒的超时

于 2013-02-24T23:00:51.217 回答