2010-10-27 20 views
9

Jeśli klikniesz na przycisk tutaj, aby zamówić przycisk tutaj: http://www.game onglove.com/ gog/test3.html, a następnie kliknij ten sam przycisk w oknie lightboxed, które się pojawi, żądanie ajax zostanie uruchomione przy użyciu $ .post().jquery ajaxStart nie działa

Możesz nacisnąć przycisk "kontynuuj zakupy", aby powrócić do poprzedniego okna lightboxed, aby szybko zacząć od nowa.

Jeśli wykonam tutaj kod jquery w konsoli (chrome lub firefox), to działa poprawnie. To po prostu nie będzie działać, skąd to jest w kodzie źródłowym:

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

Dlaczego to będzie działać z konsoli, ale nie w jego obecnej lokalizacji w źródle? Jak mogę to uruchomić?

Odpowiedz

21

Ten element wychodzi za stworzony później, trzeba wiązać po to stworzony, lub nieco prościej wiążą obsługi do document od początku:

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

Dziękujemy! Działa doskonale. Próbowałem użyć "dokumentu" zeszłej nocy i zastanawiałem się, dlaczego moja przeglądarka nalegała na załadowanie następnej strony poza lightbox. Wszystko, o czym zapomniałem, to użycie "#cboxLoadingGraphic" zamiast "this", co uświadomiłem sobie, gdy tylko zobaczyłem twój post. :) – Lauren