has - jQuery autohide elemento después de 5 segundos
jquery has not (7)
¿Es posible ocultar automáticamente un elemento en una página web 5 segundos después de que se cargue el formulario con jQuery?
Básicamente, tengo
<div id="successMessage">Project saved successfully!</div>
que me gustaría desaparecer después de 5 segundos. Miré la interfaz de usuario de jQuery y el efecto ocultar, pero estoy teniendo problemas para que funcione como quiero.
<script type="text/javascript">
$(function() {
function runEffect() {
var selectedEffect = ''blind'';
var options = {};
$("#successMessage").hide(selectedEffect, options, 500);
};
$("#successMessage").click(function() {
runEffect();
return false;
});
});
</script>
Me gustaría que se elimine la función de clic y agregar un método de tiempo de espera que llame a runEffect () después de 5 segundos.
mucho gracias!
Así es como puede establecer el tiempo de espera después de hacer clic.
$(".selectorOnWhichEventCapture").on(''click'', function() {
setTimeout(function(){
$(".selector").doWhateverYouWantToDo();
}, 5000);
});
// 5000 = 5seg = 5000 milisegundos
Creo que también podrías hacer algo como ...
setTimeout(function(){
$(".message-class").trigger("click");
}, 5000);
y haz tus efectos animados en el evento-clic ...
$(".message-class").click(function() {
//your event-code
});
Saludos,
Puedes probar :
setTimeout(function() {
$(''#successMessage'').fadeOut(''fast'');
}, 30000); // <-- time in milliseconds
Si usaste esto, tu div se ocultará después de 30 segundos. También probé este y funcionó para mí.
Tenga en cuenta que es posible que deba volver a mostrar el texto div una vez que haya desaparecido. Por lo tanto, también deberá vaciar y volver a mostrar el elemento en algún momento.
Puedes hacer esto con 1 línea de código:
$(''#element_id'').empty().show().html(message).delay(3000).fadeOut(300);
Si usa jQuery, no necesita setTimeout, al menos no para ocultar automáticamente un elemento.
Usas setTimeout en tu función runEffect:
function runEffect() {
setTimeout(function(){
var selectedEffect = ''blind'';
var options = {};
$("#successMessage").hide(selectedEffect, options, 500)
}, 5000);
}
$(''#selector'').delay(5000).fadeOut(''slow'');
$(function() {
// setTimeout() function will be fired after page is loaded
// it will wait for 5 sec. and then will fire
// $("#successMessage").hide() function
setTimeout(function() {
$("#successMessage").hide(''blind'', {}, 500)
}, 5000);
});
Nota : para que su jQuery funcione dentro de setTimeout, debe envolverlo
function() { ... }