Rails 上的 Javascript 和 JQuery UI:不刷新页面就不会显示
Posted
技术标签:
【中文标题】Rails 上的 Javascript 和 JQuery UI:不刷新页面就不会显示【英文标题】:Javascript and JQuery UI on Rails: won't display without page refresh 【发布时间】: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 无法正常显示。 【参考方案1】:您正在使用 turbolinks,但未在 application.js 中包含 turbolinks js 文件
//= require turbolinks
【讨论】:
抱歉,我在问题中编辑的代码有点过多 - //=require turbolinks 已经存在。以上是关于Rails 上的 Javascript 和 JQuery UI:不刷新页面就不会显示的主要内容,如果未能解决你的问题,请参考以下文章