2010-10-27 30 views
9

Sipariş vermek için buraya tıklayın düğmesini tıkladıktan sonra buraya tıklayın: http://www.game onglove.com/ gog/test3.html, ve sonra açılan açılan kutuda aynı düğmeyi tıklatırsanız, ajax isteği kullanılarak çalıştırılır. $ .post().jquery ajaxStart çalışmıyor

Hızla baştan başlamak için önceki lightboxed penceresine dönmek için "alışverişe devam et" düğmesine basabilirsiniz.

JQuery kodunu konsolda (chrome veya firefox) çalıştırırsam düzgün çalışır. Sadece bu kaynak kodunda olduğu yerden çalışmaz:

$('#cboxLoadingGraphic').ajaxStart(function() { 
$(this).show(); 
$('#cboxLoadedContent').hide(); 
}).ajaxStop(function() { 
$(this).hide(); 
$('#cboxLoadedContent').fadeIn('slow'); 
}); 

Neden kaynakta geçerli konumunda konsoldan çalışır ancak değil mi? Bunu nasıl çalışırım?

cevap

21

O eleman daha sonraki oluşturduktan oluşturulduktan veya daha basit biraz adil baştan document için işleyici bağlamak sonra bağlamak zorunda alma:

$(document).ajaxStart(function() { 
    $('#cboxLoadingGraphic').show(); 
    $('#cboxLoadedContent').hide(); 
}).ajaxStop(function() { 
    $('#cboxLoadingGraphic').hide(); 
    $('#cboxLoadedContent').fadeIn('slow'); 
}); 
+1

teşekkür ederiz! Mükemmel çalıştı. Dün gece "belgeyi" kullanmayı denedim ve tarayıcımın ışık kutusunun dışındaki bir sonraki sayfayı yüklemede neden ısrar ettiğini merak ettim. Yapmayı unuttuğum tek şey, postanızı görür görmez anladığım "bu" yerine "#cboxLoadingGraphic" kullanmaktı. :) – Lauren