下面是一个精简的例子。在jQuery中执行.replaceWith()时,事件绑定不会被保留
请记住,.chat-reply类具有绑定到它的单击事件处理程序。
的HTML(回复按钮):当有人点击另一个按钮将消息发送到服务器保存在数据库
<div class="container">
<a href="#" class="btn small chat-reply">Reply</a>
</div>
这个jQuery函数被调用。这通过ajax完成并且成功完成。在上述阿贾克斯()成功()回调调用此函数:
$.ajax({
type : 'GET',
url : '/some_controller/some_method',
success : function(data) {
$('.container').replaceWith(data);
}
});
在成功回调的“数据”上面会取代整个 .container DIV包括孩子.chat回复按钮。在replaceWith()之后,click事件不再绑定到按钮。从逻辑上讲,我试图让最终用户在时间轴上发布消息,然后在时间轴中显示该消息,而不需要刷新屏幕。
你代码示例对我来说有点困惑。如果你不介意澄清一点,那会很棒。 – generalopinion 2012-02-14 03:37:14
Sry the block只是从旧的'live'指向'on',但Vigrond的例子是你如何做'开'。在您的回调中收到html之后附加事件几乎会更好。 – 2012-02-14 05:17:23