twitter引导下拉突然不工作

问题描述:

我想知道如果有人可以帮助我。我的引导下拉菜单突然停止工作。我不知道为什么。它之前在工作。我没有触及我的意见我的布局意见,所以我认为这个问题不存在。即时通讯很确定它必须做我的JavaScript,但我不知道它来自哪里。twitter引导下拉突然不工作

我的宝石文件...

gem 'rails', '3.2.3' 
gem 'bootstrap-sass', '2.0.1' 
gem 'bcrypt-ruby', '3.0.1' 
gem 'faker', '1.0.1' 
gem 'will_paginate', '3.0.3' 
gem 'bootstrap-will_paginate', '0.0.5' 
gem 'devise' 
gem 'carrierwave' 
gem 'rmagick' 
gem 'delayed_job_active_record' 
gem 'daemons' 
gem 'make_voteable' 
gem 'admin_data' 
gem 'indextank' 

和我的application.js是...

//= require jquery 
//= require jquery-ui 
//= require jquery_ujs 
//= require bootstrap-dropdown 
//= require bootstrap 
//= require_tree . 

即时猜测,也许它有某种方式与我的配置文件呢?

+1

嗯,不太确定,但我认为它与你的js有关,你似乎包括bootstrap-dropdown.js宽松的插件以及bootstrap.js插件包(它带有所有的插件包括的方式,所以不需要包括松散的插件),这已知会导致问题,所以只需删除松散的插件,看看是否可行。 – 2012-04-18 22:29:23

+0

嗯,仍然不起作用。我删除了bootstrap-dropdown。我所要做的就是重新启动导轨服务器的权利生效? – Sasha 2012-04-19 01:48:37

+0

我修好了。出于某种原因... // =要求jquery打破它 – Sasha 2012-04-19 01:50:40

不得不低于

//= require bootstrap 

移动

//= require jquery 

application.js 
+5

这是一个引导错误吗?为什么需要在引导后导入jquery? – chourobin 2012-05-02 00:34:26

+0

谢谢,我有require_tree与我的其他库造成一些冲突。考虑到这一点阻止了引导js的工作,但移动// = require jquery之后的require引导一切正常! – Noz 2012-08-01 18:28:25

+1

这也适用于我,使用最新的宝石结帐。 – Frank 2012-08-02 03:00:51

Rails 3.1 Assets - Strange Serving in Development

有一个bug在压缩的版本是我在调试模式包含在application.js

我不明白这一点,但重新排序// =需要jquery和// = require bootstrap似乎为我解决了两次问题。首先在jquery上方移动bootstrap,正如Sasha建议修复它。然后我做了更多的工作,准备在rails 3.2.3上使用jruby进行部署。预编译资产,warble和dropdowns在开发和生产中都不再使用。在tmp中删除公共/资产,以及一些.class文件和文件。没有效果。最后,我将application.js中的顺序移回到最后一个失败事件之前的状态,即引导之前的jquery,并且dropdowns再次工作。

对application.js的修改是否可以触发某个缓存的重建,或者某个过程是幕后问题的源头?下次发生这种情况时,我会尝试对application.js进行简单的更改,看看它是否会执行任何操作。

预编译资产再次解决了我的问题

预编译资产不起作用。 的jQuery之前把下拉曾在发展,但不是在生产中 删除下拉发展仍然工作:-O

把正确的秩序和消除公共/资产夹中的一切使它成为发展工作。

我有同样的问题,我找到了2种方法来解决它。

首先,让我告诉你我的设置:我按照bootstrap站点上的说明操作,并下载了bootstrap-dropdown.js。我把它放在assets/javascripts中。 我的application.js文件看起来像这样:

//= require jquery 
//= require jquery_ujs 
//= require twitter/bootstrap 
//= require_tree . 

下拉框没有工作。

我注意到在页面源文件中有一个脚本标签用于引导 - 下拉。JS出现过两次:(我已经去除了无关紧要的东西为简洁起见)

<script type="text/javascript" src="/assets/jquery.js?body=1"> 
<script type="text/javascript" src="/assets/jquery_ujs.js?body=1"> 
<script type="text/javascript" src="/assets/twitter/bootstrap/bootstrap-dropdown.js?body=1"> 
<script type="text/javascript" src="/assets/twitter/bootstrap/bootstrap-scrollspy.js?body=1"> 
<script type="text/javascript" src="/assets/twitter/bootstrap.js?body=1"> 
<script type="text/javascript" src="/assets/bootstrap-dropdown.js?body=1"> 
<script type="text/javascript" src="/assets/bootstrap.js?body=1"> 

所以我删除了从的application.js行//= require_tree .,重新启动服务器,并在下拉工作!

然后我放回行//= require_tree .,而不是删除文件assets/bootstrap-dropdown.js,并再次运作!

+2

这也有帮助。我有资产 - 预编译中的发展,然后进一步的变化有点矛盾。删除公共/资产下的文件保存了我。我喜欢这个更好,而不是在jquery之前加载引导程序,在控制台中创建警告。 – allesklar 2012-08-21 09:57:15

+2

这也适用于我,bootstrap AFTER jQuery和做了一个资产:干净,然后再次预编译。 – 2013-03-19 09:00:56

+0

@CraigMcGuff非常感谢,我在这里呆了几个小时! – RedRory 2013-09-14 04:14:04

如果预编译的资产不工作尝试也删除预编译的资产

rake assets:clean

我发现,装载下拉JS两次入资产管道似乎打开,并立即关闭下拉菜单,但将做工精细在Heroku/Production中。

+2

这实际上是为我修好的 – K2xL 2012-12-22 20:46:50

+4

谢谢!但对我来说有点不同,我不得不做'耙资产:干净:全部' – Sheharyar 2013-12-07 23:17:06

我在开发机器上遇到过这个问题,但我的生产服务器工作正常..我注意到,虽然重新排序js在application.js中需要修复开发中的问题(下拉菜单再次运行),但要小心,因为这会导致我的生产中的下拉菜单。我不得不回去把他们放回原来的生产状态。现在我只是在需要时暂时改变它们。

门票#5145最近因此关闭。修复已被恢复,但最终提供了特定于应用程序的解决方案,并为我工作。请务必清除您的浏览器缓存。

我找到了一个替代品!所有这些解决方案都不适合我。而不是点击时触发下拉菜单,而是使用悬停触发。放在脚本标记页面的底部。代码:http://codedecoder.wordpress.com/2013/10/21/bootstrap-drop-down-menu-not-working-rails/

$(document).ready(function(){ 
    $('.navbar .dropdown').hover(function() { 
     $(this).find('.dropdown-menu').first().stop(true, true).delay(250).slideDown(); 
    }, function() { 
     $(this).find('.dropdown-menu').first().stop(true, true).delay(100).slideUp() 
    }); 
n}) 

我有这个问题太...这是有关轨道turbolinks。在初始页面加载时,下拉菜单不起作用,但是在刷新之后,它们会。而且,这是因为通过turbo链接,一些Dom元素可能无法每次加载/重新加载。所以,我的下拉停下来一直工作(除其他外)。轨道4修复此问题是添加jquery.turbolinks宝石https://github.com/kossnocorp/jquery.turbolinks。我发现这件宝石的一件事(后来在一些博客中遇到)是JavaScript标签必须在头部。自述没有提到这...但

下面//= require bootstrap移动//= require jquery升级gem 'bootstrap-sass',以2.3.0.1,解决我的问题。

我想补充说我上面提到的解决方案只适用于本地主机,但不适用于Heroku。 解决方案无论是在我的情况是:

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require_tree .

gem bootstrap-sass2.3.0.1

<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>需要在里面 “_header。 html.erb“,并从”application.html.erb“中删除。

我有这个错误,事实证明我的CSS阻止下拉工作。

具体来说,我有'溢出:隐藏;'在我的标题导航CSS。删除解决了这个问题。