我有以下内容:
<%= link_to my_path, method: :delete, confirm: 'Delete?', class: 'link-delete', 'data-message' => 'Are you sure?', 'data-severity' => 'danger', :remote => true do %>
<i class="icon-trash"></i>
<% end %>
它会启动一个Bootstrap模式进行确认,我想挂钩ajax调用,以便我可以显示一个微调器或某种文本。
我知道我可以使用不显眼的javascript来听这样的点击事件,如果我不使用':remote =&gt;真的'在我的link_to
jQuery ->
$('.link-delete').live 'click', (event) ->
$('.link-delete').html("Loading...") #THE MSG OR ANIMATION I WANT TO DISPLAY
$.get(this.href, null, null, 'script')
false
但不确定如何在使用':remote =&gt;时将两者结合使用真的'
有什么建议吗?
感谢您的帮助
答案 0 :(得分:69)
您可以绑定到这样的ajax调用:
<%= link_to my_path, method: :delete, confirm: 'Delete?', class: 'link-delete', 'data-message' => 'Are you sure?', 'data-severity' => 'danger', :remote => true do %>
<i class="icon-trash"></i>
<% end %>
$('.link-delete').bind('ajax:beforeSend', function() {
$('#mySpinner').show();
});
$('.link-delete').bind('ajax:complete', function() {
$('#mySpinner').hide();
});
答案 1 :(得分:11)
您不需要将两者结合起来。只需使用format.js来调用javascript。
在您的控制器中:
<强>控制器强>
def my_method
#code here
respond_to do |format|
format.js {}
end
end
<强> my_method.html.erb 强>
<div id = "link-delete"></div>
<强> my_method.js.erb 强>
$("#link-delete").html("<%= escape_javascript(render(:partial => "text_message"))%>");
<强> _text_message.html.erb 强>
<p>Loading...</p>