Turbolinks消灭了jQuery Mobile类
当我使用Turbolinks在我的rails应用程序中加载页面时,DOM缺少jQuery Mobile通常应用的样式。 我的所有JavaScript文件都运行; 唯一的问题是我失去了JavaScript 实际工作所需的一些样式。
例如,使用Turbolinks,我的标题是:
MY SITE
没有,它是:
MY SITE
我已经确认我的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 Mobile类。
我的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
编写的, app/assets/javascripts/base.js
有几个coffeescript文件。
我尝试使用jquery-turbolinks ,但它没有帮助,它似乎也没有设法解决这里的根问题,所以我删除它。
我还运行bundle exec rake assets:precompile
( :clean
, :clobber
)很多次,所以我不认为这是问题所在。
这一切都在开发中,但问题也存在于生产中。
“答案”是Turbolinks和jQuery Mobile做了许多相同的事情(都用AJAX替换整页加载),而且不需要同时使用两者 ,并且它们不是为了协同工作而设计的。 JQM更适合于必须进行移动优化的站点(大多数站点?)。
我卸载了Turbolinks ,一切都解决了。
请更正我错误描述的任何内容。