2013-03-22 21 views
10

Attualmente sono presenti messaggi flash standard con il codice devise per il successo/l'errore ecc. Ho aggiunto l'opzione per chiudere manualmente il messaggio con alcune funzionalità di bootstrap tramite una classe chiusa. Di seguito viene mostrato un piccolo frammento di codice.Come timeout dei messaggi flash nei binari

{ 
    <a class="close" data-dismiss="alert">&#215;</a> 
    <%= content_tag :div, msg, :id => "flash_#{name}" %> 
} 

ero vorrebbe avere la possibilità di creare un periodo di timeout in cui il messaggio di avviso avrebbe chiuso sulle sue uno dopo 5 secondi. Non sono sicuro se c'è un modo semplice per farlo in Rails.

Grazie

+0

del JavaScript è tuo amico. – HungryCoder

risposta

27

Se hai jQuery caricata nella stessa pagina, questo sarà il lavoro per voi `metodo setTimeout`

<div id="flash"> 
    <a class="close" data-dismiss="alert">&#215;</a> 
    <%= content_tag :div, msg, :id => "flash_#{name}" %> 
</div> 

<script type="text/javascript"> 
$(document).ready(function(){ 
    setTimeout(function(){ 
    $('#flash').remove(); 
    }, 5000); 
}) 
</script> 
+0

Grazie dovrebbe funzionare. Sembra che al codice manchi una chiusura ")" che potresti voler modificare e correggere. –

+0

si aggiornato, grazie. – HungryCoder

+0

Dove dovrebbe andare? Ho provato ad aggiungerlo al mio 'application.js' e al mio' _header.html.erb' ma non ha funzionato. Solo per informazione, ho jQuery che lavora nella mia app, grazie a '// = require jquery // = richiede jquery.turbolinks // = require jquery_ujs' in' application.js'. Mi sto perdendo qualcosa? –