我遇到了关于ajax成功的jquery实时触发的问题。这是我的link_to函数。
<%= link_to image_tag("cross.png"), patient_recurrence_detail_path(params[:id],f.object.id), :remote => true, :class => 'delete_recurrence_detail', :method => :delete, :confirm=>'Are you sure you?' %>
它调用的方法是
def destroy
@recurrence_detail = RecurrenceDetail.find(params[:id])
@recurrence_detail.destroy
respond_to do |format|
format.html { redirect_to patient_path(params[:patient_id]) }
format.js { render :nothing => true }
end
end
最后,我在创建的链接上附加了一个jquery live函数。 (我在这里使用.bind()无效)
$('a[data-method="delete"]').live("ajax:success", function(data, textStatus, jqXHR){
$(this).parents('div.fields').remove();
});
我注意到在我的网络流量中,我之前收到了删除状态,所以我对为什么没有调用live函数感到有些困惑。注意:我也尝试过使用.bind()。我有jquery-rails gem。
更新:我尝试过使用.ajaxSuccess()并更新了我的gem,但仍然没有成功。我需要在response_to中为ajax添加一些内容吗?
答案 0 :(得分:1)
简约回答,我知道,但也许尝试更新的api.jquery.com/on?
编辑:我认为宝石刚刚在一个月前碰到了jquery 1.7.1 ......
答案 1 :(得分:0)
直到现在,我都不知道甚至可能!然后我从docs学到了Ajax事件被广播到所有DOM元素。
根据文档,您应该绑定ajaxSuccess
,而不是“ajax:success”。