Ich habe eine Flash-Nachricht, die durch eine Ajax-Antwort generiert wird. In meinem Controller habe ich:Schienen, entfernen Flash-Nachricht generiert über Ajax
def destroy
flash[:danger] = "Successfuly destroyed"
format.js
end
, die eine destroy.js.erb-Datei aufruft
$('#flash_messages').html("<%= escape_javascript (render partial: 'layouts/flash_messages') %>");
, die eine teilweise macht das die Flash-Mitteilungen zeigt. Diese Teilansicht sieht folgendermaßen aus:
Ich möchte jquery verwenden, um die Flash-Nachricht nach 2 Sekunden zu entfernen. Was ich versucht war:
$(".alert").fadeTo(2000, 500).slideUp(500, function(){
$(".alert").alert('close');
});
, die jedoch nicht die gewünschte .alert Klasse, weil es nach dem Laden der Seite erzeugt wird. Was ist eine Problemumgehung dieses Problems? Vielen Dank!
Sie können den Jquery-Code in die Datei 'destroy.js.erb' schreiben. Und dann wird es funktionieren. Jquery Code muss nach '$ ('# flash_messages') hinzugefügt werden. Html (" 'line ofcourse. Haben Sie das versucht? –
Das hat den Trick gemacht. Fügen Sie es als Antwort hinzu, damit ich es als Akzeptiert markieren kann. Danke ! –
gibt es auch eine andere Möglichkeit, den Code auszuführen, wie das Ausführen des Codes, wenn Ajax abgeschlossen ist, vom 'Erfolg'-Callback aus. In diesem Fall müssen Sie das JS nicht innerhalb der destroy.js.erb platzieren So wird es funktionieren. –