2010-05-18 9 views

Respuesta

10

Bueno, .hover() une dos manejadores para el eventos mouseenter y mouseleave, por lo que es una forma más conveniente y también más fácil de entender el propósito.

mouseenter difiere de mouseover la medida en que no mouseenter es despedido si el cursor se encuentra sobre/entra en un elemento hijo del elemento del controlador está enlazado.
Solo se dispara una vez, cuando los cursores entran en el elemento. mouseover siempre se dispara, incluso si el cursor está sobre un elemento secundario.

La mejor manera de ver la diferencia es echar un vistazo al ejemplo de mouseleave().

Además, mouseover y mouseout son eventos reales de JavaScript mientras mouseenter y mouseleave son eventos proporcionados por jQuery (que yo sepa).

Al final, depende de lo que quiere lograr. No hay ningún bien o mal y todos estos métodos tienen su propósito. A menos que muestres algún código, no hay mucho más que decir.


Si se refiere a :hover en CSS y se puede lograr el efecto deseado con ella, ir a por ello. Si hay una solución que no es JS para un cierto problema, siempre elija esta.

2

hover simplemente le ahorra tener que hacer un mouseenter y un mouseleave haciendo ambas cosas en una sola función.

+0

Estoy de acuerdo con este – Rbacarin

1

prefiero usar css, porque parece que escribo menos código para hacer lo mismo.

0

Son los mismos, excepto vuelo estacionario maneja tanto MouseEnter y MouseLeave

Ver: http://api.jquery.com/hover/

Así que usted puede utilizar de esta manera

$('selector').hover(function() { 
    // Do stuff on mouse enter 
    }, function() { 
    // Do other stuff on mouse leave 
    } 
) 
0

Puesto que usted está aprendiendo, aquí es otra equivalente a usar emergente:

$('selector').bind('mouseenter mouseleave', function(){ 
if (event.type == "mouseenter") { 
    // MouseEnter code 
} else { 
    // MouseLeave code 
} 
}) 
Cuestiones relacionadas