Tengo una función diferida que se une a un evento MouseEnter:jQuery: ¿Cómo comprobar si el ratón está sobre un elemento
$(window).load(function(e) {
var $container = $('.container');
$container.mouseenter(function(e) {
//do something
});
...
});
El problema es el ratón podría estar ya sobre el elemento cuando se activa el evento de carga, por lo tanto, antes de que el evento del mouseenter estuviera vinculado.
puedo evitar esto poniendo un poco de código al final del manipulador de carga de la página para hacer una verificación de una sola vez si el ratón está dentro del elemento y desencadenar el evento MouseEnter manualmente:
// check if the mouse is inside $container
if(mouse is inside $container)
$container.mouseenter();
¿Cómo puedo comprobar si el mouse está sobre el elemento en el evento de carga?
Intenté $container.is(':hover')
pero no funciona.
¿Has probado mouseenter y mouseleave events? –
'$ container.is (': hover')' - ¿De qué manera eso no funciona? Mi preocupación sería que no es particularmente compatible con cross-cross (no funcionará en IE7, por ejemplo, porque se basa en el comportamiento de qSA), pero parece hacer lo que me está buscando ... – lonesomeday
@lonesomeday: vea http://jsfiddle.net/UVJgF/1/ y coloque su mouse sobre la caja negra y presione ctr + enter. no se dispara en FF8 – spb