43

私は次のものを持っています:

<%= 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 %>

確認のためにBootstrapModalが表示され、スピナーやある種のテキストを表示できるように、ajax呼び出しにフックしたかったのです。

link_toで':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」を使用するときに2つを組み合わせる方法がわからない

助言がありますか?

助けてくれてありがとう

4

2 に答える 2

82

次のように 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();
});
于 2013-03-08T13:31:11.400 に答える
12

2 つを組み合わせる必要はありません。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>
于 2013-03-08T11:20:24.470 に答える