使用AJAX的Rails link_to禁用特定链接的AJAX加载覆盖

时间:2015-08-06 00:12:54

标签: javascript jquery ruby-on-rails ajax

我正在使用Rails 4并为我的所有remote: true链接提供有效的AJAX覆盖。

application.js

$('#loading-ajax').hide();
$('#overlay-ajax').hide();

$(document).ajaxStart(function() {
  $('#loading-ajax').show();
  $('#overlay-ajax').show();
});
$(document).ajaxStop(function() {
  $('#loading-ajax').hide();
  $('#overlay-ajax').hide();
});  

问题是,对于一个特定的link_to,我不会链接显示此叠加层。在过去,我使用了global: false AJAX选项,但我不确定在哪里为remote: true链接设置AJAX选项。

我在哪里可以为此链接设置AJAX选项?或者我如何禁用它的常规ajaxStart功能?

1 个答案:

答案 0 :(得分:1)

如果你想用jQuery和ajax以及rails做一些稍微高级的东西,我建议改变你的策略来进行显式的jQuery ajax调用,而不是使用Rails助手:remote: true。在您的视图中尝试这样的事情:

<%= link_to 'Click Me', action_path, :class => 'my-great-link' %>

<script>
  $('.my-great-link').click( function( event ) {
    event.preventDefault;
    $.ajax({
      url: $(this).prop('href'), // this will grab 'action_path' or whatever your link_to points to
      global: false // prevent ajaxStart from being triggered
    });
  });
</script>