2013-11-04 44 views
-1

有問題......

$(document).ready(function() { 
var n = '#nav', no = 'nav-open'; 
    $('#nav-menu').click(function() { 
    if ($(n).hasClass(no)) { 
     $(n).animate({height:0},300); 
     setTimeout(function(){ 
      $(n).removeClass(no).removeAttr('style'); 
     },320); 
    } 
    else { 
     var newH = $(n).css('height','auto').height() 
      ; 
     $(n).height(0).animate({height:newH},300); 
     setTimeout(function(){ 
      $(n).addClass(no).removeAttr('style'); 
     },320); 
    } 
}); 
}); 

我想這沒有任何的運氣:

var ready; 
ready = function() { 

...your javascript goes here... 

}; 

$(document).ready(ready); 
$(document).on('page:load', ready); 

對不起,我沒用的JavaScript!

+1

爲什麼這不適合你?你有沒有檢查控制檯的錯誤? –

+1

你的代碼工程http://jsfiddle.net/mr4C4/ – Max

+0

@max,問題不在於代碼不起作用 - 這是因爲TurboLinks,即使你進入不同的頁面,基本上也能保持加載;令人困惑的JS –

回答

0

據我瞭解,我會建議使用jQuery-Turbolinks,這是一個寶石安裝,以與Turbolinks

0 JS工作

我們有一個類似的問題給自己,因爲我們不得不

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

,它不會火 - 它是由Turbolinks加載文檔一次,然後欺騙JS以爲這是造成不重裝

我想嘗試安裝寶石&看,如果它的工作原理:

的Gemfile:

gem 'jquery-turbolinks' 
Add it to your JavaScript manifest file, in this order: 

//= require jquery 
//= require jquery.turbolinks 
// 
// ... your other scripts here ... 
// 
//= require turbolinks 
+0

jquery.turbolinks不應該用於新的代碼 - 它是一個包裝,使現有的遺留代碼與新的turbolinks框架。 – sevenseacat

+0

我只說明了我們的工作,並且我們使用了新代碼 –

+1

,那麼你應該圍繞turbolinks編寫你的新代碼,而不是把這個黑客入侵。 – sevenseacat

0

你的最後兩行添加(),要求他們執行

$(document).ready(ready()); 
$(document).on('page:load', ready()); 

說明:ready是代表由您定義的函數的變量。如果你叫它的名字ready,它將返回函數定義。如果你打電話來執行,你需要添加()

+0

我嘗試過沒有任何運氣: 'var ready; ready = function(){ \t var n ='#nav',no ='nav-open'; 。 \t $( '#導航菜單')點擊(函數(){ \t \t如果($(N).hasClass(無)){ \t \t \t $(N).animate({高度:0} ,300); \t \t \t的setTimeout(函數(){ \t \t \t \t $(n)的.removeClass(無).removeAttr( '風格'); \t \t \t},320); \t \t} \t \t其他{ \t \t \t var newH = $(n)。css('height','auto')。height() \t \t \t \t; (n).height(0).animate({height:newH},300); \t \t \t的setTimeout(函數(){ \t \t \t \t $(n)的.addClass(無).removeAttr( '風格'); \t \t \t},320); \t \t} \t}); }; $(document).ready(ready()); (分頁):('page:load',ready());' – owenob1

+1

@ owenob1,我分出了Max的小提琴,並根據新的結構進行了修改。它在jQuery的準備下工作。 http://jsfiddle.net/billychan/4Zgug/ –

+0

這仍然不希望工作在與渦輪鏈接的Rails – owenob1