La respuesta aceptada es el único bueno aquí.
Estoy dejando una respuesta porque la mayoría de las otras fallan por varias razones.
Si desea utilizar .delay()
, el elemento retrasado debe formar parte de la cola. El método .hide()
no lo es. Pero si le das a .hide()
una duración, es.
Así que usted puede hacer esto:
var $div2 = $('#div2');
$('#div1').mouseenter(function() {
$div2.show().delay(10000).hide(0);
});
La duración 0
hace .hide()
parte de la cola. No desea utilizar .hover()
porque se activará una vez para mouseenter
y una vez para mouseleave
. Esto no es lo que se quería.
Algunas de las respuestas que usan setTimeout()
fallan porque si hay varios eventos mouseenter
, se realizan varias llamadas setTimeout()
. La respuesta aceptada evita esto.
Publique una muestra de HTML para obtener la mejor respuesta. Podría haber problemas de orden de evento si los divs están anidados. – Silkster
@silkster, la próxima vez definitivamente lo haré. Obtuve la respuesta, muchas gracias – kobe
Posible duplicado de [jQuery show por 5 segundos y luego ocultar] (http://stackoverflow.com/questions/3428766/jquery-show-for-5-seconds-then-hide) –