我有以下代码:
<%= 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 %>
这带来了一个供确认的引导模式,我想连接到Ajax调用,以便可以显示其他类型的文本。
我知道,如果我没有在链接中使用':remote => true',就可以使用低调的javascript来像这样处理单击事件:
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 => true' 时如何将两者结合起来,有什么建议吗?谢谢你的帮助。
You don't need to combine the two. Just use the format.js to call the javascript.
In your controller:
Controller
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>
You can bind to ajax calls like this:
<%= 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();
});