放置<;%=收益率%>;在ajax jquery调用的部分示例中

放置<;%=收益率%>;在ajax jquery调用的部分示例中,jquery,ruby-on-rails,ajax,partial,yield,Jquery,Ruby On Rails,Ajax,Partial,Yield,我正试图使我的中的“home”链接执行ajax/jquery调用,以更改我的content div中的一部分中的。我得到的只是视图中的空白在不使用ajax的情况下放入部分时工作正常,但在使用ajax时不会显示任何内容。。。yield可以不这样使用吗 所有我真正想要的是能够点击我的网站导航链接,而不必重新加载整个页面 my application.html.erb文件如下所示: <head> $(function() { $("#home").live("click", funct

我正试图使我的
中的“home”链接执行ajax/jquery调用,以更改我的content div中的一部分中的
。我得到的只是视图中的空白<代码>在不使用ajax的情况下放入部分时工作正常,但在使用ajax时不会显示任何内容。。。
yield
可以不这样使用吗

所有我真正想要的是能够点击我的网站导航链接,而不必重新加载整个页面

my application.html.erb文件如下所示:

<head>
$(function() {
  $("#home").live("click", function() {
    $.get(this.href, null, null, "script");
  return false; }); });
</head>
<body>
  <div id="container">
    <%= render 'layouts/header' %>
    <div id="content">
      <%= render 'layouts/content' %>
    </div>
    <%= render 'layouts/footer' %>
  </div>
</body>

$(函数(){
$(“#主页”).live(“单击”,函数(){
$.get(this.href,null,null,“脚本”);
返回false;});});
我的
包含:

<%= link_to "Home", root_path, :id => "home" %>
<%= yield %>
“主页”%%>
我的
仅包含:

<%= link_to "Home", root_path, :id => "home" %>
<%= yield %>

home.js.erb

$("#content").html("<%= escape_javascript(render("layouts/content")) %>");
$(“#content”).html(“”);

home.js.erb
中,您正在呈现一个空的布局文件。尝试渲染一些视图

可以将
视为布局文件中呈现视图内容的占位符。如果只渲染布局,则没有要放入的内容

替代解决方案

将此项添加到控制器顶部,以禁用ajax请求的布局:

layout Proc.new { |controller| controller.request.xhr? ? false : 'application' }
这将使用ajax加载
#标题
中的所有链接,并将结果放入
#内容
div:

$(function() {
    $('#header a').live('click', function() {
        $('#content').load(this.href);
        return false;
    });
});

从控制器操作中删除js格式,因为不再需要它。

您的用例完全由gem处理

您只需将其配置为
div#content
作为其主要默认容器,您的网站将使用此容器自动ajaxified。无需更改应用程序的代码

它为您处理了很多麻烦:书签、历史记录、脚本执行、重定向、表单、禁用JS浏览器的回退


您还可以指定要在某些特定控制器的操作上刷新的其他部分。

感谢您的回答,我刚刚开始学习Jquery,只是好奇,如果我想让它淡入,我会将.fadeIn()放在哪里?