【问题标题】:Javascript and JQuery UI on Rails: won't display without page refreshRails 上的 Javascript 和 JQuery UI:不刷新页面就不会显示
【发布时间】:2013-08-21 02:21:26
【问题描述】:

我是 Ruby on Rails 和 Javascript 的新手,所以不知道如何继续。我有一个应用程序,它使用了一些时髦的 JQuery UI 组件,特别是 Datepicker 和 Tabs。它们都可以工作,但只有一次我至少刷新了一次页面;在第一次加载时,我只得到 html,就好像 jquery javascript 文件不存在于 app/assets/javascripts 中一样。

有什么想法吗?第一次加载失败,如何自动刷新页面?

application.js:

$(function() {
  $("#event_start_time").datepicker();
  $("#tabs").tabs();
});

view.html.erb:

<div id="tabs">
  <ul>
    <li><a href="#students"><span>Students</span></a></li>
    <li><a href="#teachers"><span>Teachers</span></a></li>
  </ul>
  <div id="students">
    <%= render 'sessions/student_login_details' %>
  </div>
  <div id="organisations">
    <%= render 'sessions/teacher_login_details' %>
  </div>
</div>

application.html.erb:

  <head>
    <%= yield :scripts %>
    <%= stylesheet_link_tag    "application", media: "all", "data-turbolinks-track" => true %>
    <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
  </head>
  <body>
    <%= render 'layouts/header' %>
    <div class="container">
      <%= yield %>
      <%= render 'layouts/footer' %>
    </div>
  </body>

编辑:好的,解决了。那是台球室里的 Turbolinks,里面有铅管。这个 gem https://github.com/kossnocorp/jquery.turbolinks 有助于解释为什么它偶尔会导致 Javascripts 无法正常运行。谢谢大家!

【问题讨论】:

  • 您看过浏览器开发工具吗?它对 JQuery 文件说了什么?是否已加载?任何控制台输出?
  • 已加载,是的,但显示不正确。没关系,我相信是 Turbolinks 导致 javascripts 无法正常显示。

标签: jquery html ruby-on-rails jquery-ui


【解决方案1】:

您正在使用 turbolinks,但未在 application.js 中包含 turbolinks js 文件

//= require turbolinks

【讨论】:

  • 抱歉,我在问题中编辑的代码有点过多 - //=require turbolinks 已经存在。
猜你喜欢
  • 1970-01-01
  • 2020-11-27
  • 1970-01-01
  • 2015-10-10
  • 2014-06-19
  • 1970-01-01
  • 2019-02-11
  • 1970-01-01
  • 2020-02-25
相关资源
最近更新 更多