2009-03-25 16 views
76

¿Es posible ocultar automáticamente un elemento en una página web 5 segundos después de que se cargue el formulario con jQuery?jQuery elemento oculto automático después de 5 segundos

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 la función Pulse para quitar y añadir un método de tiempo de espera que llama a la runEffect() después de 5 segundos.

mucho gracias!

Respuesta

91
$(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: Con el fin de hacer que el trabajo función jQuery dentro setTimeout que debe envolver el interior

function() { ... } 
+1

He intentado este código en mi sitio web. Pero, no funcionó. Aparte de este script js, ¿qué más necesito para que funcione? ¡Por favor aconséjame! ¡Gracias! – Jornes

+1

@Jornes asegúrese de que este script se encuentra después de '' en su página. –

1

Se utiliza setTimeout en que la función runEffect:

function runEffect() { 
    setTimeout(function(){ 
     var selectedEffect = 'blind'; 
     var options = {}; 
     $("#successMessage").hide(selectedEffect, options, 500) 
    }, 5000); 
} 
177
$('#selector').delay(5000).fadeOut('slow'); 
+2

Tenga en cuenta que esta solución rompe $ ('html'). Haga clic en (función() { \t \t // haga clic fuera de \t \t $ ("# selector").fadeOut(); \t}); – max4ever

+0

Gracias por esta sencilla solución. – Ron

+0

¡Gracias, solución muy simple! –

1

Creo que también podría hacer algo como ...

setTimeout(function(){ 
    $(".message-class").trigger("click"); 
}, 5000); 

y hacer sus efectos animados en el evento clic ...

$(".message-class").click(function() { 
    //your event-code 
}); 

Saludos,

7

que puede probar:

setTimeout(function() { 
    $('#successMessage').fadeOut('fast'); 
}, 30000); // <-- time in milliseconds 

Si usted utilizó este entonces su Div se ocultará después de 30 segundos. También probé este y funcionó para mí.

0

Así es como puede establecer el tiempo de espera después de hacer clic.

$(".selectorOnWhichEventCapture").on('click', function() { 
    setTimeout(function(){ 
     $(".selector").doWhateverYouWantToDo(); 
    }, 5000); 
}); 

// 5000 = 5 seg = 5000 miliseg

0

Tenga en cuenta que puede que tenga que mostrar div texto de nuevo después de que haya desaparecido. Por lo tanto, también deberá vaciar y volver a mostrar el elemento en algún momento.

Usted puede hacer esto con 1 línea de código:

$('#element_id').empty().show().html(message).delay(3000).fadeOut(300); 

Si estás usando jQuery que no necesitan setTimeout, al menos no se oculte automáticamente un elemento.

Cuestiones relacionadas