54

ajax ile birlikte jQuery AutoComplete eklentisini kullanıyorum. Ajax araması yapılırken bir ilerleme göstergesini nasıl gösterebilirim biliyor musunuz?jQuery otomatik tamamlama: Animasyonlu bir gif yükleme resmi nasıl gösterilir

Bu benim geçerli kodum.

<script type="text/javascript"> 
    $("#autocomplete-textbox").autocomplete('http://www.example.com/AutoComplete/FindUsers'); 
</script> 

<div> 
    <input type="text" id="autocomplete-textbox" /> 
    <span class="autocomplete-animation"><img id="ajaxanimation" src="../img/indicator.gif")"/></span> 
</div> 

FindUsers URL içeriğindeki bir kullanıcı listesini döndürür. CSS sınıf çalışma aşağıdaki gibi tanımlanır

+0

sen yani tarayıcıya gönderilen ediliyor gerçek biçimlendirme/kod gösterebilir/ne olursa olsun ' <% %> 'İşaretleme? –

+0

@Marcel: –

+1

numaralı yayını düzenledim Hala içinde bir '%>' var; Kaza mı, yoksa sorunlara mı sebep oluyor? –

cevap

148

otomatik tamamlama zaten ui-autocomplete-loading sınıf ekler (yükleme süresi için) bunun için kullanılabilir ...

.ui-autocomplete-loading { background:url('img/indicator.gif') no-repeat right center } 
+0

ThemeRoller'ı kullandığınızda, yükleme gif ile ilgili yükleme bilgi indirilmeden çıkarılır. http://bugs.jqueryui.com/ticket/6046 – camainc

+3

Bunun, kabul edilen yanıttan daha iyi bir çözüm olduğunu düşünüyorum çünkü arama sonuçlarından herhangi bir sonuç gelmediği zaman hesaplıyor. –

+5

ve görüntü tema başlatıcıda olmadığından, buradan alın: http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/images/ui-anim_basic_16x16.gif – commonpike

47
$("#autocomplete-textbox").autocomplete 
(
search : function(){$(this).addClass('working');}, 
open : function(){$(this).removeClass('working');} 
) 

:

.working{background:url('../img/indicator.gif') no-repeat right center;} 

DÜZENLEME

Sam answer problemi çözmek için daha iyi bir yaklaşımdır

+6

ui-autocomplete yükleme sınıfını kullanarak daha fazla tercih edilir, bu göstergenin geri döndürülmesi, kullanıcı –

+1

yanıtının kullanıcı tarafından karıştırılmasında kalır: function() {} - Bir arama tamamlandıktan sonra tetiklenen – pszaba

1

hiçbir sonuç varsa bunu yapabilirsiniz çalışır değildir: o Ruby/ASP olmadan

$("input[name='search']").autocomplete({ 
..., 
select: function(event, ui) { 
action show image 
} 
}).data("autocomplete")._renderItem = function(ul, item) { 
action hide image 
}