これが要約された例です。
.chat-replyクラスには、クリックイベントハンドラーがバインドされていることに注意してください。
HTML(返信ボタン):
<div class="container">
<a href="#" class="btn small chat-reply">Reply</a>
</div>
このjQuery関数は、データベースに保存するメッセージをサーバーに送信する別のボタンをクリックしたときに呼び出されます。これはajaxを介して行われ、正常に行われます。前述の.ajax()success()コールバックでは、この関数は次のように呼び出されます。
$.ajax({
type : 'GET',
url : '/some_controller/some_method',
success : function(data) {
$('.container').replaceWith(data);
}
});
上記の成功コールバックの「データ」は、子の.chat-replyボタンを含む.containerdiv全体を置き換えます。このreplaceWith()の後、クリックイベントはボタンにバインドされなくなります。
論理的には、エンドユーザーにタイムラインにメッセージを投稿してもらい、画面を更新せずにそのメッセージをタイムラインに表示させようとしています。