ruby on rails - dropdown de twitter desplegable de repente no funciona
ruby-on-rails drop-down-menu (14)
¡Encontré una alternativa! todas estas soluciones no funcionaron para mí. En lugar de tener el menú desplegable activado al hacer clic, lo activé al colocar el cursor sobre él. poner en la parte inferior de la página en las etiquetas de script. código de: 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})
Me preguntaba si alguien me podría ayudar. mi menú desplegable de bootstrap de repente dejó de funcionar. no tengo ni idea de porqué. estaba trabajando antes No toqué mis vistas, mis vistas de diseño, así que creo que el problema no está allí. Estoy bastante seguro de que tiene que ver con mi javascript, pero no sé de dónde viene.
mi archivo gem es ...
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''
y mi application.js es ...
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require bootstrap-dropdown
//= require bootstrap
//= require_tree .
Supongo que esto tiene que ver con mis archivos de configuración de alguna manera.
Además, asegúrese de que no tiene //require bootstrap-sprockets
dentro de su application.js. Lo comenté y funcionó para mí.
El ticket #5145 fue cerrado recientemente por esto. La corrección se revirtió, pero al final se suministró una solución específica para la aplicación y funciona para mí. Asegúrese de borrar la memoria caché de su navegador también.
Estaba experimentando esto en mi máquina de desarrollo, pero mi servidor de producción funcionó bien. Noté que al reordenar el js se requiere en la aplicación. Js soluciona el problema en desarrollo (los desplegables funcionan de nuevo), tenga cuidado ya que esto mató mis desplegables en producción. Tuve que regresar y volver a ponerlos como estaban para que la producción volviera a funcionar. Por ahora solo los estoy cambiando temporalmente en dev cuando lo necesito.
La precompilación de los activos volvió a solucionar el problema
Los recursos previos a la compilación no funcionaron. Puesta de menú desplegable antes de que jquery funcionara en desarrollo pero no en producción. La eliminación de menú desplegable aún funcionaba en el desarrollo: -O
Poner el orden correcto y eliminar todo en la carpeta public / assets lo hizo funcionar en el desarrollo.
Mover //= require jquery
debajo //= require bootstrap
y actualizar gem ''bootstrap-sass''
, a 2.3.0.1 , resolvió mi problema.
Quiero agregar que la solución que mencioné anteriormente solo funciona en Localhost pero no en Heroku. La solución para ambos en mi caso fue:
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require_tree .
gem bootstrap-sass
, 2.3.0.1
y <%= javascript_include_tag ''application'', ''data-turbolinks-track'' => true %>
debe estar dentro de " _header.html.erb " y eliminar de " application.html.erb ".
No entiendo esto, pero reordenando // = require jquery y // = require bootstrap parece haber solucionado el problema dos veces. Primero mover el bootstrap por encima de jquery, como sugiere Sasha, lo solucionó. Luego hice más trabajo y me preparé para usar jruby on rails 3.2.3. Los activos de precompilación, warble y las listas desplegables dejan de funcionar tanto en desarrollo como en producción. Eliminar public / assets, así como algunos archivos .class y archivos en tmp. Sin efecto. Finalmente moví la orden en application.js de vuelta a lo que había sido antes del último episodio de falla, es decir, jquery antes de bootstrap, y los desplegables funcionan de nuevo.
¿Podría una alteración a application.js desencadenar una reconstrucción de algún caché, o algún proceso detrás de escena que es la fuente del problema? La próxima vez que esto ocurra, intentaré un cambio trivial en application.js y veré si hace algo.
También tuve este problema ... y estaba relacionado con los rieles turbolinks. En la carga de la página inicial, los menús desplegables no funcionarían, pero después de una actualización lo harían. Y esto se debe a que con los enlaces turbo, es posible que algunos elementos Dom no se carguen / carguen de nuevo cada vez. Entonces, mi menú desplegable dejó de funcionar constantemente (entre otras cosas). La solución Rails 4 para esto es agregar la gema jquery.turbolinks https://github.com/kossnocorp/jquery.turbolinks . Una cosa con esta joya que encontré (y más tarde me encontré en algún blog) es que la etiqueta javascript debe estar dentro del encabezado. El README no menciona esto ... pero
Tuve el mismo problema y encontré 2 maneras de solucionarlo.
Primero, déjame decirte mi configuración: seguí las instrucciones en el sitio de arranque y descargué bootstrap-dropdown.js. Lo puse en assets / javascripts. Mi archivo application.js se ve así:
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require_tree .
Desplegados no funcionaron.
Noté en la fuente de la página que una etiqueta de script para bootstrap-dropdown.js apareció dos veces: (he eliminado lo irrelevante para abreviar)
<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">
Así que eliminé la línea //= require_tree .
desde application.js, reinició el servidor, ¡y el menú desplegable funcionó!
Luego devuelvo la línea //= require_tree .
y en su lugar eliminó el archivo assets / bootstrap-dropdown.js, ¡y nuevamente funcionó!
Tuve este error y resultó que mi CSS impedía que el menú desplegable funcionara.
Específicamente, tuve ''desbordamiento: oculto''; en mi encabezado Nav CSS. Eliminar eso resolvió el problema.
Ver Rails 3.1 Activos: Ser extraño en el desarrollo
hay un error por el cual la versión comprimida se está incluyendo en el modo de depuración en application.js
si los activos de precompilación no funcionan, intente también eliminar los activos precompilados
rake assets:clean
Descubrí que el menú desplegable que se está cargando dos veces en la canalización de activos parece abrir y cerrar el menú desplegable al instante, pero funcionaría bien en Heroku / Producción.
tuvo que moverse
//= require jquery
abajo
//= require bootstrap
dentro
application.js