这是一个精简的例子。
请记住, .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);
}
});
上面成功回调中的“数据”将替换整个.container div,包括子 .chat-reply 按钮。在这个 replaceWith() 之后,click 事件不再绑定到按钮。
从逻辑上讲,我试图让最终用户将消息发布到时间轴,然后在时间轴中显示该消息,而无需刷新屏幕。