2013-08-31 55 views
0

32,我想div来显示出来只是5秒钟后的文件已经准备好,所以我用

$(document).ready(function(){ 
    delay(function(){ 
     $('#up').slideDown("slow"); 
    },4000); 
}); 

,但它不工作,文件加载时我不使用延时功能。 它的工作原理使用:

$(document).ready(function(){ 
    setTimeout(function(){ 
     $('.hidden').slideDown("slow"); 
    },4000); 
}); 

而且我不希望使用set-timeout功能,所以我怎么能做到这一点有延时功能。

+0

为什么你不想使用'setTimeout'?这正是它的目的。我假设你对jQuery的'delay()'感到困惑,因为它设计用于延迟jQuery动画队列中的动作,所以它无法工作。 –

回答

4

有没有所谓的在JavaScript的延迟,你需要使用的setTimeout你上述的方法不同。

$(document).ready(function() { 
    setTimeout(function() { 
     $('.hidden').slideDown("slow"); 
    }, 4000); 
}); 

还有的jQuery提供.delay()方法,它是在队列中添加延迟项目

$('.hidden').delay(4000).slideDown("slow"); 

演示:Fiddle

仍,如果你不希望使用setTimeout然后为它创建一个别名(只是为了好玩

var delay = setTimeout; 
delay(function() { 
    $('.hidden').slideDown("slow"); 
}, 4000); 
+1

OP提到它使用'setTimeout',但他不想使用它 –

+0

@TusharGupta是OP的问题的解决方案 –

+0

他已经知道他想要的解决方案。 –

1

您可以使用此代码

.slideDown()

$('#up').slideDown(4000); //time in ms 
+2

这会让'slideDown'花费4秒,而不是等待4秒。 –

+0

是的,我知道,但没有使用他不想要的'setTimeout'的选择。 –

+0

但它不符合他的要求。 –

1

DEMO

试试这个

$(document).ready(function() { 
    $('.hidden').delay(4000).slideDown("slow"); 
}); 

希望这会有所帮助,谢谢

相关问题