2017-04-16 9 views
0

私はjquery.show()を使用して、"display:none"のdivをCSSで表示しています。 しかし、show()機能は、divを表示するのが遅れます。
jquery show()関数の遅延

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

私は$('#mydiv').show({queue:false})ようにしようとしたが、それは動作しません。 #mydivは、function1とfunction2が終了したときにのみ表示されます。 show()をすぐに使用できるようにするにはどうすればよいですか?

update:私が$ .ajxaSetup({async:false})を使用していたためです。
私は$ .getのような複数のリクエストを作成する必要があり、すべてのリクエストが完了した後に何かをして非同期にしましたが、このように$ .show()関数はすべてのリクエストが完了するまで機能しません...

+1

function1とfunction2は何をしていますか? – dfsq

+0

'.show( 'fast')'これを試してください。 –

答えて

0

私はあなたの実際のファイルについてはよく分からないが、あなたのコードに基づいて、ここで彼らはhide方法のコールバックですmain関数によって呼び出されているまで、機能onetwoは実行されません簡単なコールバックを使用して、私のソリューションです:

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