2013-03-22 19 views
10

Mam obecnie standardowe wiadomości flash z gemem devise dla sukcesu/niepowodzenia itd. Dodałem opcję ręcznego zamykania wiadomości z niektórymi funkcjami bootstrap za pomocą klasy zamykającej. Mały urywek pokazano poniżej.Jak przerwać wysyłanie wiadomości flash w szynach

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

Chciałbym mieć opcję utworzenia limitu czasu, w którym komunikat ostrzegawczy byłby zamykany po upływie 5 sekund. Nie wiem, czy jest prosty sposób na zrobienie tego w Railsach.

Dzięki

+0

obsługa JavaScript jest twoim przyjacielem. – HungryCoder

Odpowiedz

27

Jeśli załadowany jQuery na tej samej stronie, to będzie pracować dla Ciebie `metoda 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

Dzięki temu to powinno zadziałać. Wygląda na to, że brakuje kodu zamykającego ")", który możesz edytować i naprawić. –

+0

yes updated, thanks. – HungryCoder

+0

Gdzie to powinno pójść? Próbowałem dodać go do mojego 'application.js' i mojego' _header.html.erb', ale to nie zadziałało. Dla informacji mam jQuery działające w mojej aplikacji, dzięki "// = wymagają jquery // = wymagają jquery.turbolinks // = wymagają jquery_ujs' w' application.js'. Czy czegoś brakuje? –

Powiązane problemy