我是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将加载。如果那两个在那里没有任何作用。
答案 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方法。