2

请查看示例http://jsfiddle.net/FuFHe/7/

当我单击按钮 Show Data loader 时,应该显示 div 并在几秒钟后隐藏。在控制台日志中,您可以清楚地看到 qloader div 的 display 属性设置为 block 和 none,但没有任何反应,qloader div 永远不会显示。

怎么了?

4

4 回答 4

2

为什么使用sleep使用setTimeout

setTimeout(function(){
        $("#loading").hide();},3000);

现场演示

于 2012-08-31T13:19:05.203 回答
0

您需要sleep()show()函数完成后立即调用函数。检查小提琴。它现在应该可以工作了。JSFIDDLE 链接

但正如@rahul 所提到的,你应该使用setTimeout()函数。

$("#loading").show(function(){
    sleep(3000);
    $("#loading").hide();
});
于 2012-08-31T13:18:34.160 回答
0

这不是一个好的睡眠方式。它吃掉了 CPU,你甚至不能指望它在一台快速机器上花费整整 3 秒。而是使用 setTimeout()

setTimeout(function(){
    $("#loading").hide();     
    console.log("qloader display = " + $("#loading").css("display")); 
}, 3000);

这将允许浏览器和您的网站在您等待时间过去时继续运行。

于 2012-08-31T13:19:03.020 回答
0

尝试使用 setTimeout

$('.btn').on( "click" , function( event ){
 $("#loading").show(); 
    setTimeout(function(){
       $("#loading").hide();
    }, 3000);

});  

jsFiddle

于 2012-08-31T13:22:14.717 回答