Oto skondensowany przykład.Podczas wykonywania .replaceWith() w jQuery powiązania zdarzeń nie są zachowywane.
Należy pamiętać, że klasa .chat-reply ma przypisaną obsługę zdarzenia kliknięcia.
HTML (Odpowiedz przycisk):
<div class="container">
<a href="#" class="btn small chat-reply">Reply</a>
</div>
Ta funkcja jQuery jest wywoływana, gdy ktoś kliknie inny przycisk, który wysyła komunikat do serwera mają być zapisane w bazie danych. Odbywa się to za pośrednictwem ajax i odbywa się pomyślnie. W wyżej wymienionym .ajax() sukces() callback funkcja ta nazywa się:
$.ajax({
type : 'GET',
url : '/some_controller/some_method',
success : function(data) {
$('.container').replaceWith(data);
}
});
do „danych” w zwrotnego sukcesu powyżej zastąpi całą .container div tym dzieckiem przycisk .chat-post. Po tym replaceWith() zdarzenie click nie jest już powiązane z przyciskiem.
Logicznie rzecz biorąc, ja próbuje mieć użytkownik końcowy Wiadomości do osi czasu, a następnie mają tę wyświetlania wiadomości na osi czasu bez, która chciałaby, aby odświeżyć ekran.
Twój Przykład kodu jest dla mnie trochę zagmatwany. Jeśli nie masz nic przeciwko temu, żeby trochę wyjaśnić, byłoby wspaniale. – generalopinion
Sry blok po prostu wskazywał ze starego "live" na "on", ale przykładem Vigrond jest to, jak zrobić "na". Byłoby prawie lepiej dołączyć zdarzenie po otrzymaniu html w twoim oddzwonieniu. –