JQuery - Evento de atraso no mouseout
-
20-09-2019 - |
Pergunta
Existe uma maneira de fazer o jQuery esperar uma certa quantidade de tempo antes de o evento de mouseout ser demitido?
Ele está disparando muito cedo no momento e eu prefiro esperar 500ms antes de avaliar o mouse para fora. Um exemplo do código que estou usando abaixo.
$('.under-construction',this).bind({
mousemove: function(e) {
setToolTipPosition(this,e);
css({'cursor' : 'crosshair' });
},
mouseover: function() {
$c('show!');
showUnderConstruction();
},
mouseout: function() {
$c('hide!');
hideUnderConstruction();
},
click: function() {
return false;
}
});
Existe uma maneira jQuery de fazer isso ou terei que fazer isso sozinho?
Solução
Divida a lógica dentro do mouseout
em outra função. no mouseout
até chamar essa função com um setTimeout("myMouseOut", 500)
. E você pode combinar o mouseover
evento com um clearTimeout()
Para redefinir o temporizador se o usuário se mover para um novo elemento.
Outras dicas
Você sempre pode envolver sua lógica em um setTimeout()
função.
mouseout: function() {
setTimeout(function(){
$c('hide!');
hideUnderConstruction();
}, 500);
}
Você pode conferir o Plugin Hoverintent Permite definir alguns VARs que ajudam nas interações MouseEnter/OUT