jquery

2011-03-14 30 views
5

'da önceki satırın sonlandırılmasından sonra satır yürütülmesi jQuery uygulamasında yeniyim ve basit bir program deniyorum. Bu programda, elde etmeye çalıştığım şey, div metnine tıkladığımda, ilk satırın fadeoutunu değiştirecek, sonra arka plan rengini değiştirecek ve daha sonra genel olarak soluklaşan rengi yavaş yavaş etkileyecektir, ama burada ne oluyor? metne tıkladığımda çizgi aniden renk değiştirir, sonra söner ve sonra kaybolur. Bu yüzden, fadeout'un çalıştırılmasından sonra renk değiştirme kodunun yürütülmesinin bir yolu olup olmadığını merak ediyorum.jquery

programım:

Sen fadeOut geçirilen bir geri değişen renk koymak zorunda
 $(document).ready(function(){ 
      $("#firstDiv").click(function(){ 
       //     $(this).fadeOut(1000); 

       $(this).fadeOut(1000); 

       $(this).css("background-color", "aqua"); 

       $(this).fadeIn(1000); 


      }); 
     }); 
    </script> 
</head> 
<body> 
    <div id="firstDiv" style="background-color: yellowgreen"> 
     Click Me 
    </div> 
</body> 

cevap

3

Böyle Fadeout() geri çağırma işlevini kullanabilirsiniz:

$(this).fadeOut(1000, function(){ 
    $(this).css("background-color", "aqua").fadeIn(1000); 
}); 
4

:

$(this).fadeOut(1000, function() { 
    $(this).css("background-color", "aqua"); 
}).fadeIn(1000); 

everyt Geri çağırma işlemini gerçekleştirdiğinizde, fadeOut bittikten sonra yürütülür. Etki yöntemleri queued otomatik olduğu için fadeIn hemen yürütülmez.

Ama: pahalı hesaplamalı şey yapıyorsun (yani o zaman alır), siz de geri aramasında fadeIn koymak zorunda geri aramasında ve bu bittikten sonra fadeIn aramak istediğiniz:

$(this).fadeOut(1000, function() { 
    $(this) 
     .css("background-color", "aqua") 
     .fadeIn(1000); 
}); 

Aksi takdirde, geri arama bittikten önce fadeIn çağrılır.


bu bağlamda okuma Ayrıca değer: Can somebody explain jQuery queue?

+0

Neden solma zincir otomatik yapar ama css değişikliği yok ki? – poke

+0

@poke: Bunu sadece cevabıma ekledi;) –