2017-04-16 97 views
0

我使用jquery.show()来显示在CSS中的"display:none"的div。 但是,show()函数延迟显示div。
jquery show()函数延迟

function button_click(){ 
    $("#mydiv").show(); 
    function1(); 
    function2(); 
} 

我试着像$('#mydiv').show({queue:false}),但它不工作。 仅当function1和function2完成时#mydiv才会显示。 如何使show()立即工作?

更新:我发现这是因为我使用$ .ajxaSetup({async:false})。
我需要做出多个请求,如$ .get,并且在所有请求完成后我做了一些事情,所以我使它成为异步...但通过这种方式,$ .show()函数在所有请求完成之前不起作用...

+1

而function1和function2是做什么的? – dfsq

+0

'.show('fast')'试试这个。 –

回答

0

我不知道您的实际文件,但根据您的代码下面是一个使用简单的回调函数onetwo不会运行,直到他们被main功能是hide方法的回调打电话给我的解决方案:

function button_click(){ 
 
\t function one() { console.log('I am one');} 
 
\t function two() { console.log('I am two');} 
 
\t 
 
\t $("#mydiv1").hide('slow', function main(){ 
 
\t \t one(); 
 
\t \t two(); 
 
\t }); 
 
} 
 

 

 
button_click();
.child { 
 
\t color   : white; 
 
\t display   : inline-block; 
 
\t margin   : 20px; 
 
\t \t \t 
 
\t min-width  : 50px; 
 
\t min-height  : 50px; 
 
\t padding   : 10px; 
 
\t background-color: olive; 
 
    } 
 
\t \t 
 
.parent { 
 
\t padding   : 20px; 
 
\t background-color: beige; 
 
\t }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="father" class="parent"> 
 
\t \t \t <div id="mydiv1" class="child">1</div> 
 
\t \t \t <div id="mydiv2" class="child">2</div> 
 
\t \t \t <div id="mydiv3" class="child">3</div> 
 
\t \t \t <div id="mydiv4" class="child">4</div> 
 
\t \t \t <div id="mydiv5" class="child">5</div> 
 
\t \t \t </div>

我希望这有助于

+0

有帮助!非常感谢! – user7873949