Turbolinks 消灭了 jQuery 移动 类

Turbolinks wipes out jQuery Mobile classes

当我使用 Turbolinks 在我的 rails 应用程序中加载页面时,DOM 缺少 jQuery Mobile 通常应用的样式。我的所有 JavaScript 个文件 运行;唯一的问题是我丢失了一些 JavaScript 到 实际上 工作所需的样式。

例如,使用 Turbolinks,我的 header 是:

<a rel="external" href="/">MY SITE</a>

没有,是:

<a rel="external" href="/" class="ui-link">MY SITE</a>

我已经确认我的 JS 文件是 运行 Turbolinks。问题是预期的 jQuery Mobile 类 不存在。

我不确定如何确保在单击 Turbolink 时应用这些 类。对于正确方向或区域的任何建议,我将不胜感激。

我试过用以下方式包装 JavaScript:

$(document).ready(function () {
  //functions
});

和:

$(document).on('turbolinks:load', function() {
  //functions
});

我已经将 coffeescript 包装在同一个文件中:

ready = ->
  #coffee
$(document).on('turbolinks:load', ready)

两者似乎都适用于我的正常 JS/coffeescript 活动,所以这不是问题——只有 jQuery 手机 类 丢失了。

我的 application.js 文件是:

//= require jquery
//= require jquery_ujs
//= require jquery.mobile
//= require js-routes
//= require turbolinks
//= require twitter/bootstrap
//= require_tree .

我试过用几种不同的方式重新排序,但都无济于事。

我的JavaScript全部写在app/assets/javascripts/base.js里,还有几个coffeescript文件在app/assets/javascripts.

我尝试使用 jquery-turbolinks,但它没有帮助,它似乎也不是为了解决这里的根本问题而设计的,所以我删除了它。

我也运行 bundle exec rake assets:precompile (:clean, :clobber) 很多次了,所以我认为这不是问题。

这一切都在开发中,但问题也存在于生产中。

"answer" 是 Turbolinks 和 jQuery Mobile 做很多相同的事情(都用 AJAX 替换整页加载),one does not need to use both,他们不是为了一起工作而设计的。 JQM 更适合必须进行移动优化的网站(大多数网站?)。

uninstalled Turbolinks,一切都解决了

请更正我描述错误的任何内容。