En mi aplicación Rails, después del éxito de la acción AJAX, aparece un mensaje flash con el mensaje "Paciente agregado". Debido a que no encontré en ningún lado cómo agregar una cruz para cerrar este mensaje, sin recargar la página, quise ocultarlo automáticamente después de 2 segundos.
Lo que hice:
$("#add-patient").replaceWith("<%= j (render :partial => 'registrants/add_patient') %>"); $("#flash-messages").after("<div class='alert alert-success'> Patient Added </div>").fadeOut(2000);Pero no pasa nada, no desaparece el mensaje ni me sale ningún error en la consola. ¿Cómo desvanecer este mensaje o al menos poner "x" para cerrarlo?
Puede usar la función de retraso de jQuery después de que se haya mostrado el mensaje y antes del desvanecimiento para retrasar la transición. Además, ¿tiene la intención de agregar el mensaje al objeto flash-messages ? Tal como está ahora, está aplicando el mensaje después del objeto flash-messages , pero el fadeOut se está aplicando a flash-messages . Aquí tienes un ejemplo aproximado de lo que podrías hacer.
Nota: también puede usar agregar en lugar de html para agregar contenido adicional a flash-messages si ya existe alguno.
$(function() { $("#flash-messages").html("<div class='alert alert-success'> Patient Added </div>").fadeIn().delay(2000).fadeOut(); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="flash-messages"></div>