引导程序“下拉打开”切换在开发中无法正常工作,但在生产中有效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了引导程序“下拉打开”切换在开发中无法正常工作,但在生产中有效相关的知识,希望对你有一定的参考价值。

我正在关注RailsTutorial sample_app ,在里面我们使用了twitter-boostrap框架。 有一个下拉菜单(代码,jQuery)在开发环境中不适合我,但在生产中很好(在Heroku上)。

在“视觉事件”的帮助下,我确认有一个与菜单标题相关的事件。 正常行为应该是单击以更改类:

<li id="fat-menu" class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">

至:

<li id="fat-menu" class="dropdown open">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">

不过,在我的情况下,点击它会添加“打开”并在同一时刻删除。 我几乎没有注意到它会进行更改,但很快就会返回初始状态,因此下拉菜单无法打开。

如果我在浏览器中手动编辑代码并在课程中添加“打开”,则会打开菜单。 如果我然后单击菜单标题,它会暂时“打开”,然后再次返回(与第一个案例相反)。

我很困惑它在生产中有效,但在开发中却没有(在同一个浏览器上)。 我该怎么检查?

谢谢!

瓦西尔//第一个问题

答案

如果要两次加载bootstrap-dropdown.js的代码,则会出现此行为。 检查以确保您没有加载bootstrap-dropdown.jsbootstrap.js 。 后者包括前者。


JSFiddle FAIL

如果从资源面板中删除bootstrap-dropdown.js并重新运行它,它将起作用。

另一答案

(Rails 3.2)我通过删除本地预编译资产解决了这个问题 - 它可以在Heroku / Prod中正常工作,但会在开发中立即打开和关闭。

rake assets:clean

另一答案

我遇到了同样的问题,结果发现引导下拉正在加载两次。 这个修复+1!

我们全局加载bootstrap-dropdown.js,因为我们在每个页面上都使用它。 我们的一个开发人员将bootstrap.js作为依赖项加载到一个小部件中。 结果是除了一个页面之外,我们的每个页面的下降都有效。 追踪有点困难,如果不知道最近页面上发生了什么变化,那将会更加难以理解。

另一答案

从bootstrap -v 2.1更新到2.3解决了我的问题。

另一答案

我遇到了几乎相同的问题。 但是导致在一个html页面中同时加载bootstrap和bootstrap.min js文件作为bundle(ASP.NET MVC项目)。 删除其中一个解决了它。

另一答案

我遇到了同样的问题。 但所有这一切都是因为我错过了一些结束HTML元素。

另一答案

我有同样的问题。 我了解到预编译资产用于开发和生产。 我在生产环境中测试缓存,当我切换回开发时,下拉菜单停止工作。

在从生产切换回开发时,始终记得清理已编译的资产。

另一答案

这些解决方案都不适合我。 生产模式导致此问题。 我通过大量的反复试验发现,config.assets.debug = false导致我没有看到我的gem文件设置有问题。 当我将它设置为true时,我得到的错误指出我的'bootstrap-sass'宝石在我的资产组内部时应该没有。

因此,对于那些已经解决了这个问题但已经完成了这个评论的人,请尝试在生产环境中设置config.assets.debug = true,看看它是否至少能让你指向正确的方向。

以上是关于引导程序“下拉打开”切换在开发中无法正常工作,但在生产中有效的主要内容,如果未能解决你的问题,请参考以下文章

@ angular / router在angular.js应用程序中无法正常工作

我在 Angular 8 中安装了引导程序但无法正常工作。为啥?

xcode 应用程序中的错误:无法向引导服务器注册 [重复]

滑块数据在带有后端数据的引导程序中无法正常工作

Pickaday2 在模态窗口中无法正常工作

视频无法在 Firefox 上弹出引导模式