jquery - 将 <%=yield %> 放入 ajax jquery 调用的部分中

标签 jquery ruby-on-rails ajax partial yield

我正在尝试在我的 <%= render 'layouts/header' %> 中创建“主页”链接执行 ajax/jquery 调用来更改 <%= yield %>在我的内容 div 内的一部分。我得到的只是 View 中的空白.. <%= yield %>当放入没有 ajax 的部分时工作正常,但使用 ajax 时它不会显示任何内容...可以 yield不能这样用吗?

我真正想要的是能够点击我的网站导航链接,而无需重新加载整个页面...

我的 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>

我的<%= render 'layouts/header' %>包含:

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

我的<%= render 'layouts/content' %>仅包含:

<%= yield %>

home.js.erb

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

最佳答案

您的用例完全由rails-ajax解决。 gem 。

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

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

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

关于jquery - 将 <%=yield %> 放入 ajax jquery 调用的部分中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4573078/

相关文章:

ruby-on-rails - rails activerecord 事务 block 似乎没有提交

javascript - capybara 和恶作剧 'select' 文本输入

javascript - 新的 XMLHttpRequest 无法在 Firefox 上运行

来自 AJAX 调用的 javascript 函数响应返回未定义

jquery - 使用ASP.NET MVC进行jquery-调用启用了Ajax的Web服务

jquery - 使用 Bootstrap 和 Aurelia 附加的井的随机移动

javascript - jQuery.kinetic - 如何在页面加载时预滚动到某个位置

javascript - jQuery 中的 "Converting"具有多个音轨的音频播放器

jquery - 单击时的简单切换类不适用于表格

ruby-on-rails - 在模型实例上强制加载关联