Rails3 Jquery - 内容加载消息

时间:2011-07-23 14:12:35

标签: jquery ruby-on-rails ajax

我是Rails中使用Jquery的新手。任何人都可以提供内容正在加载的消息的工作示例。我不想使用全局ajaxStart,因为我不想每次调用它。

我有一些内容很重的偏见,并且想要弹出一条消息告诉人们它正在加载。

我环顾四周,看到了一些代码来实现这一目标,但我似乎并没有意识到这一切都在哪里。

任何让我指向正确方向的事情都会很棒。

我的代码: 的index.html

<%= link_to 'Health & Beauty', health_contacts_path, :action => 'health',  :remote => true %>

health.js

$(function (){
  $(".health")
    .bind("ajax:beforeSend",  function() {
  $("#spinner").show('slow');
    });
    .bind("ajax:success", function() {
  $("#spinner").hide();
    });
    .bind("ajax:complete", function(event, data, status, xhr) {
       $("#content").html("<%= escape_javascript(render(:partial => "health")) %>");
    });
 });

非常感谢

编辑: 我更改了health.js中的代码,我不明白这是不行的。如果我拿出ajax:beforeSend和ajax:success然后ajax:complete将加载。如果那两个在那里没有任何作用。

1 个答案:

答案 0 :(得分:1)

当用户点击会加载部分内容时,我会立即显示我的笨蛋(加载图片)。

$(".throb_2").fadeIn();

然后在加载show.js.haml的文件中,我在调用partial时再次隐藏它。

==  $(".throb_2").fadeOut();
==  $(".opened_gallery").html("#{ escape_javascript(render :partial => 'photo_index') }").hide().fadeIn();

<强>更新

听起来我应该向您简要介绍一下我如何调用AJAX调用。

第1步...将您的link_to呈现给return false;

$(".ajax").live("click", function(){
 $.get($(this).attr("href"), null, null, "script");
 return false;
});

现在,您添加.ajax类的任何链接都会调用控制器/操作,但实际上并不会重定向您的浏览器。

就我而言,这个动作是我的表演动作。但我没有show.html.erb文件,我有一个show.js文件。在该文件中,我执行上面的javascript方法。