2013-02-24 49 views
1

我试图做一个removeClass功能工作的另一个函数结束之后,所以我有这个脚本调用fittocontainer:的setTimeout刚过功能

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

而且我要的功能后,“fittocontainer '端,应用此功能:

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

我怎样才能在setTimeout函数与集成‘fittocontainer()’它刚结束后,开始工作?

+0

你'的setTimeout超时()'需要的持续时间。调用'fittocontainer()'后立即调用'setTimeout()'有什么问题? – jfriend00 2013-02-24 22:56:21

+0

我怀疑你的'.fittocontainer()'方法是异步的 – Alexander 2013-02-24 22:57:40

回答

3

是否是fittocontainer函数?如果是这样,它是异步的,你必须添加一个回调,如:

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

然后,你可以把它传递一个函数,甚至是匿名函数,如:

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

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

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

还请记住,你需要像setTimeout的超时:

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

即1秒

+0

没错这就是一个功能我做了 – codek 2013-02-24 23:01:42

+0

好真棒,那么你可以传递一个回调作为参数传递给该函数,并将它调用你的功能,正如我的第一个例子 – 2013-02-24 23:05:20

+0

我知道了,谢谢结束! – codek 2013-02-24 23:09:22

3

的setTimeout()是关于时间(分,秒),如果你只是想在结束时执行该功能,你可以只称呼它,或者你可以使用一个callback功能:

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

和然后打电话给fittcontainer:

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

我刚刚提出了相同的观点......在这种情况下,设置1秒的超时时间似乎没有必要。 – 2013-02-24 23:20:11

+0

@MattB。确实! – martriay 2013-02-24 23:20:48