Jquery mouseenter() vs mouseover()

Resuelto aziz punjani asked hace 13 años • 6 respuestas

Entonces, después de leer una pregunta respondida recientemente, no tengo claro si realmente entiendo la diferencia entre mouseenter()y mouseover(). La publicación dice

Ratón sobre():

Se activará al ingresar a un elemento y siempre que se produzca algún movimiento del mouse dentro del elemento.

RatónEntrar():

Se disparará al entrar en un elemento.

Se me ocurrió un violín que usa ambos y parecen bastante similares. ¿Alguien puede explicarme la diferencia entre los dos?

También intenté leer las definiciones de JQuery, ambas dicen lo mismo.

El evento del mouseover se envía a un elemento cuando el puntero del mouse ingresa al elemento

El evento mouseenter se envía a un elemento cuando el puntero del mouse ingresa al elemento.

¿Alguien puede aclararlo con un ejemplo?

aziz punjani avatar Sep 02 '11 23:09 aziz punjani
Aceptado

Verá el comportamiento cuando su elemento de destino contiene elementos secundarios:

http://jsfiddle.net/ZCWvJ/7/

Cada vez que el mouse ingresa o sale de un elemento secundario, mouseoverse activa, pero no mouseenter.

$('#my_div').bind("mouseover mouseenter", function(e) {
  var el = $("#" + e.type);
  var n = +el.text();
  el.text(++n);
});
#my_div {
  padding: 0 20px 20px 0;
  background-color: #eee;
  margin-bottom: 10px;
  width: 90px;
  overflow: hidden;
}

#my_div>div {
  float: left;
  margin: 20px 0 0 20px;
  height: 25px;
  width: 25px;
  background-color: #aaa;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>

<div>MouseEnter: <span id="mouseenter">0</span></div>
<div>MouseOver: <span id="mouseover">0</span></div>

<div id="my_div">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>
Expandir fragmento

gilly3 avatar Sep 02 '2011 16:09 gilly3

Aunque funcionan de la misma manera, el mouseenterevento solo se activa cuando el puntero del mouse ingresa al elemento seleccionado . El mouseoverevento se activa si el puntero del mouse ingresa también algún elemento secundario .

ErickBest avatar May 03 '2013 15:05 ErickBest

Vea el código de ejemplo y la demostración en la parte inferior de la página de documentación de jquery:

http://api.jquery.com/mouseenter/

... mouseover también se activa cuando el puntero se mueve hacia el elemento secundario, mientras que mouseenter se activa solo cuando el puntero se mueve hacia el elemento vinculado.

Willem avatar Sep 02 '2011 16:09 Willem

El evento mouseenter se diferencia del mouseover en la forma en que maneja la propagación de eventos . El evento mouseenter solo activa su controlador cuando el mouse ingresa al elemento al que está vinculado, no a un descendiente . Consulte: https://api.jquery.com/mouseenter/

El evento mouseleave difiere de mouseout en la forma en que maneja la propagación de eventos . El evento mouseleave solo activa su controlador cuando el mouse abandona el elemento al que está vinculado, no un descendiente . Consulte: https://api.jquery.com/mouseleave/

user2330678 avatar Apr 09 '2016 15:04 user2330678