2012-02-11 8 views
9

el uso de Twitter de arranque 2.0 con Rails 3.2 (css con activos/hojas de estilo, no usar menos o Sass en este momento)Bootstrap alerta despido no trabaja, los carriles de 3,2

Tengo un error de arranque de estilo o alerta éxito en la parte superior de mi pantalla (en función de si la primera palabra del mensaje == "error". he añadido '' bootstrap.js & 'bootstrap-alert.js' a los activos/javascript carpeta.

Este es el código en mi diseño:

<% flash.each do |name, msg| %> 
    <% if msg[0..4] == "Error" %> 
    <div class="alert alert-error fade in"> 
    <% else %> 
    <div class="alert alert-success fade in"> 
    <% end %> 
    <a class="close" data-dismiss="alert" href="#">&times;</a> 
    <%= msg %> 
<% end %> 

En mis activos/javascripts/application.js tengo:

$(".alert-message").alert() 
$(".alert-message").alert('close') 

No estoy seguro de que necesito ambos? intentado con .alert/.alert-error también.

No ocurre nada cuando hago clic en el símbolo de cerrar, estoy seguro de que me falta algo muy obvio, pero soy nuevo en el uso de JS/w Rails, no puedo resolverlo. En la consola de Chrome JS veo este mensaje de error, que parece estar a punto de arranque-alert.js datos API:

Uncaught TypeError: Object [object Object] has no method 'on'

Muchas gracias por cualquier consejo!

+0

Segundos después de hacer clic en 'enviar' en esta pregunta, se da cuenta del problema ... El problema fue causado por tener 'jquery.js' y 'jquiery-ui.js' también en la carpeta javascripts, deben estar teniendo nombres conflictivos/clases Después de eliminar los archivos jquiery, el error js desapareció al cargar la página y el borrado de alertas funciona ahora ... d'oh – bobomoreno

+0

Deberías agregar esto como respuesta y aceptarlo :) – Pierre

Respuesta

4

Según lo indicado en los comentarios, el problema parece haber sido causado por los archivos de la competencia de Javascript.

El problema fue causado por tener 'jquery.js' y 'jquery-ui.js' también en la carpeta Javascripts, deben tener nombres/clases en conflicto.

Después de retirar el jQuery js archivos del error desapareció sobre la carga de la página y la alerta-despido trabaja ahora

16

que tenía el mismo problema, y ​​mire a su bobomoreno respuesta, pero no funcionó. Más tarde descubrí que la versión más reciente de Bootstrap requiere jQuery 1.7.x y no funciona con las versiones anteriores de jQuery.

+2

¡Gracias! me ahorró una tonelada de problemas y tiempo: D – rjha94

+1

Actualicé mi Gemfile para especificar 'gem jquery-rails ~> '2.0'' (que obtiene jQ 1.7.x) pero aún no logro el evento close para disparar. :-( –

+0

No sé nada acerca de los rieles, pero ¿ha actualizado la referencia del cliente también para apuntar a la nueva versión de jQuery? – Dofs

6

Tuve el mismo problema: el despido de alerta no funcionó para mí. La solución fue similar a la de bobomoreno, pero no es lo mismo. Tenía un archivo app/assets/javascripts/bootstrap.js.coffee con algunas cosas personalizadas, que era obligatorio en lugar de los javascripts de bootstrap. Lo arreglé cambiando el nombre a bootstrap-custom.js.coffee, por lo que los archivos de bootstrap se requerían correctamente.

+1

Esta fue mi respuesta, y realmente tiene sentido. Moverse por las versiones de jquery y jquery es una pista falsa. – steakchaser

Cuestiones relacionadas