Como no puedo comentar, ¡escribiré esto como respuesta!
¡Comprenda la diferencia entre el selector css ": hover" y el evento hover!
": hover" es un selector de CSS y de hecho se eliminó con el evento cuando se usa así $("#elementId").is(":hover")
, pero en este sentido no tiene nada que ver con el evento de desplazamiento jQuery.
si codificas $("#elementId:hover")
, el elemento solo se seleccionará cuando pase el mouse por encima. la declaración anterior funcionará con todas las versiones de jQuery al seleccionar este elemento con una selección de CSS pura y legítima.
Por otro lado, el evento se cierne, que es
$("#elementId").hover(
function() {
doSomething();
}
);
De hecho, se considera como jQuery 1.8 aquí el estado del sitio web de jQuery:
Cuando se usa el nombre del evento "hover", el subsistema del evento lo convierte en "mouseenter mouseleave" en la cadena del evento. Esto es molesto por varias razones:
Semántica: el desplazamiento no es lo mismo que el mouse que entra y sale de un elemento, implica una cierta desaceleración o retraso antes de disparar. Nombre del evento: El event.type devuelto por el controlador adjunto no se desplaza, sino mouseenter o mouseleave. Ningún otro evento hace esto. Cooptar el nombre "hover": no es posible adjuntar un evento con el nombre "hover" y dispararlo usando .trigger ("hover"). Los documentos ya llaman a este nombre "fuertemente desaconsejado para el nuevo código", me gustaría desaprobarlo oficialmente para 1.8 y eventualmente eliminarlo.
Por qué eliminaron el uso es (": hover") no está claro, pero bueno, todavía puede usarlo como se indica arriba y aquí hay un pequeño truco para seguir usándolo.
(function ($) {
/**
* :hover selector was removed from jQuery 1.8+ and cannot be used with .is(":hover")
* but using it in this way it works as :hover is css selector!
*
**/
$.fn.isMouseOver = function() {
return $(this).parent().find($(this).selector + ":hover").length > 0;
};
})(jQuery);
Ah, y no recomendaría la versión de tiempo de espera ya que esto trae mucha complejidad , use las funcionalidades de tiempo de espera para este tipo de cosas si no hay otra manera y créanme, ¡en el 95% de los casos hay otra manera !
Espero poder ayudar a un par de personas por ahí.
Greetz Andy