Pregunta

¿Hay una manera de hacer jQuery esperar una cierta cantidad de alrededor de tiempo antes de que se dispara mouseout evento?

Se está disparando demasiado pronto en el momento y yo preferiría que esperar 500 ms antes de que se evalúa el ratón fuera. Un ejemplo del código que estoy usando a continuación.

$('.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;
    }
});

¿Hay una manera de jQuery para hacer esto o voy a tener que hacerlo yo?

¿Fue útil?

Solución

Dividir la lógica dentro de la mouseout en otra función. en el mouseout incluso llamar a esta función con un setTimeout("myMouseOut", 500). Y puede combinar el evento con una mouseover clearTimeout() para restablecer el temporizador si el usuario se mueve en un nuevo elemento.

Otros consejos

Siempre se puede envolver su lógica en una función setTimeout().

mouseout: function() {
  setTimeout(function(){
    $c('hide!');
    hideUnderConstruction();
  }, 500);
}

Es posible que echa un vistazo a la hoverIntent complemento le permite definir algunas vars que ayudar con MouseEnter de entrada / salida interacciones

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top