У меня есть флеш-сообщение, которое генерируется с помощью ответа ajax. В моем контроллере у меня есть:Рельсы, удалите флеш-сообщение, сгенерированное с помощью ajax
def destroy
flash[:danger] = "Successfuly destroyed"
format.js
end
который называет destroy.js.erb файл
$('#flash_messages').html("<%= escape_javascript (render partial: 'layouts/flash_messages') %>");
, что делает частичным, которая показывает быстрые сообщения. Это частичное выглядит так:
#flash_messages
-flash.each do |key, value|
= content_tag(:div, value, class: "flash alert alert-#{key}")
Я бы хотел использовать jquery для удаления флеш-сообщения через 2 секунды. То, что я попытался было:
$(".alert").fadeTo(2000, 500).slideUp(500, function(){
$(".alert").alert('close');
});
, которые, однако, не находит .alert класс, потому что он генерируется после загрузки страницы. Что такое обходной путь этой проблемы:? Спасибо!
Вы можете написать код JQuery в файле 'destroy.js.erb'. И тогда это сработает. Код JQuery, который нужно добавить после '$ ('# flash_messages'). Html (« 'line of the course. Вы попробовали это? –
Это сделал трюк. Добавьте его в качестве ответа, чтобы я мог отметить его как Accepted. ! –
Существует и другой способ выполнения вашего кода. Как и выполнение кода, когда Ajax завершает, от обратного вызова «success». В этом случае вам не нужно помещать JS в файл destroy.js.erb. так оно и будет работать. –