8

我在導軌4應用程序中使用基金會5。當我發送請求時,頂欄菜單正常工作。我可以懸停物品和嵌套物品沒有問題。然後,我點擊其中一個項目,其中有一個與之關聯的link_to方法。有時它會在我的菜單仍然完美地工作的情況下給出正確的結果,但有時整個事情都會凍結。這也使得手機菜單的後退按鈕消失。一旦我通過刷新或網址發送新的請求,菜單再次工作。基金會5 Topbar在導軌4中不能一直工作4

Rails在日誌文件中沒有看到任何問題。我的菜單在軌道外工作良好。我想知道是否可能與我的link_to tag_helpers或我在應用程序中設置基礎的方式有關?

下面是如何爲基礎路由JS的快速概述。 的意見/佈局/ application.html.erb(他們自己的文檔建議配置):

<head> 
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
<%= stylesheet_link_tag "application" %> 
<%= javascript_include_tag "vendor/modernizr" %> 
</head> 
<body>  
    <%= javascript_include_tag "application" %>  
</body> 

資產/ application.js中:

//= require jquery 
//= require jquery_ujs 
//= require foundation 
//= require turbolinks 
//= require_tree . 

$(document).foundation(); 

有其他人遇到這個問題?除了不使用粉底5以外,還有什麼好的解決方案?

感謝 亞歷克斯

回答

11

基金會已知問題Turbolinks,您的問題可能是由於這一點。

要排除故障,可以禁用Turbolink並查看頂部欄是否仍然存在問題。

這是一個簡單的指南: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資產。並且,引用source

將所有Javascript加載到代碼中是很重要的。包含jQuery的順序很重要 - 確保你在turbolinks和jquery之前加載jquery.turbolinks。包括jQuery的turbolinks.js和turbolinks.js之間所有的自定義JS在你的application.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's answer此頁面上的其他有用信息。

+1

感謝。我只是遇到了同樣的問題,而這只是訣竅。 –

+1

@vanda哪一部分,特別是幫助你? – Ecnalyr

+1

我實際上刪除了turbolinks以進行故障排除。順便說一句,我沒有這個問題與turbolinks在Firefox 26上。這個問題發生在我身上chrome –

8

好的。與Ecnalyr解釋的一致。 (他解釋正確,我有點誤解了)。這工作對我來說:

我保持= javascript_include_tag "application"在application.html的主體的末尾。ERB

的application.js是這樣的:

//= require jquery 
//= require jquery.turbolinks 
//= require jquery_ujs 
//= require foundation 
//= require_tree . 

$(document).foundation(); 

//= require turbolinks 
+0

真棒。這爲我解決了這個問題 – ringe

0

我最近遇到此問題。

使用jquery.turbolinks沒有解決它。在application.js中重新排序需求並沒有解決它。

到目前爲止沒有提到這裏的伎倆。

solution I found是將foundation初始值設定項從application.js移動到body中。我只是把它放在我的_nav部分下面。

<script> 
    $(document).foundation(); 
</script> 
3

這適用於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); 
+0

與下拉鍊接工作正常。謝謝 ! – overallduka

+0

解決了我的問題,似乎比添加jquery.turbolinks更清潔 – qnsi