Foundation 5 Topbar在导轨中不能始终如一地工作4

我在我的rails 4应用程序中使用基础5。 当我发送请求时,顶部栏菜单工作正常。 我可以hover项目和嵌套项目没有问题。 然后,我单击其中一个项目,其中包含与之关联的link_to方法。 有时它会在我的菜单仍能正常工作的情况下给出正确的结果,但有时候整个事情会冻结。 这也使移动菜单的后退按钮消失。 一旦我通过刷新或url发送新请求,菜单就会再次运行。

Rails在日志文件中没有看到任何问题。 我的菜单在rails之外工作正常。 我想知道是否可能与我的link_to tag_helpers或我在我的应用程序中设置基础的方式有关?

以下是JS如何为基础路由的快速概述。 (他们在他们的文档上建议的配置)views / layouts / application.html.erb:

        

资产/ application.js中:

 //= require jquery //= require jquery_ujs //= require foundation //= require turbolinks //= require_tree . $(document).foundation(); 

还有其他人遇到过这个问题吗? 除了不使用粉底5之外,还有什么好的解决方案吗?

谢谢Alex

基金会已知道Turbolinks的问题,您的问题可能就是由此引起的。

要解决这个问题,您可以禁用Turbolinks并查看顶栏是否仍有问题。

这是一个简单的指南: http : //blog.steveklabnik.com/posts/2013-06-25-removing-turbolinks-from-rails-4 。

除此之外,如果你必须拥有Turbolinks,那么Turbolinks就是问题所在。 您可以尝试添加jquery turbolinks,如下所示: https : //github.com/kossnocorp/jquery.turbolinks 。

如果问题仍然存在,下一步将是检查您导入javascript文件的顺序(这与Turbolinks / Foundation问题有关),您可能会对此感到满意。 我没有确切的订单让你把它们放进去,但如果你搜索“Turbolinks Foundation”问题,你最终会偶然发现一些解决方案。 这不一定是某种解决方案,但它会引导您朝着正确的方向前进。

更新:尝试此订单导入您的JavaScript资源。 而且,引用来源 :

将所有Javascripts加载到标记内是很重要的。 包含jQuery的顺序很重要 – 确保在turbolinks之前和jquery之后加载jquery.turbolinks。 在你的application.js中包含jquery-turbolinks.js和turbolinks.js之间的所有自定义js

 // app/assets/javascript/application.js //= require jquery //= require jquery.turbolinks //= require jquery_ujs //= require foundation //= require jwplayer/jwplayer.js //= require asset_videos //= require turbolinks 

注意:请阅读Alex Aube在此页面上的答案 ,以获取更多有用信息。

好。 与Ecnalyr解释的一致。 (他解释正确,我有点误解了)。 这对我有用:

我在= javascript_include_tag "application"正文的末尾保留了= javascript_include_tag "application"

application.js是这样的:

 //= require jquery //= require jquery.turbolinks //= require jquery_ujs //= require foundation //= require_tree . $(document).foundation(); //= require turbolinks 

这适用于turbolinks进度条和基础选项卡,下拉链接,手风琴

 //= require jquery //= require jquery_ujs //= require foundation //= require turbolinks //= require_tree . var ready; ready = function() { $(document).foundation(); }; $(document).ready(ready); $(document).on('page:load', ready); 

我最近遇到过这个问题。

使用jquery.turbolinks没有解决它。 在application.js中重新排序需求并没有解决它。

到目前为止,这里没有提到任何东西。

我找到的解决方案是将基础初始化程序从application.js移动到正文中。 我把它放在我的_nav部分下面。