2013-11-04 45 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