Tengo el siguiente guión disparando mouseover y mouseout siempre dos veces! ¿qué sugieres que hago mal (desvincular, devolver, por ejemplo)? Probé algunas cosas, pero nada ayudó.jquery delegate() eventos (mouseover mouseover) se dispara dos veces
Aquí está el código:
$('#container').delegate('div.showmenu', 'mouseover mouseenter mouseout mouseleave', function(e){
if (e.type === 'mouseover' || e.type==='mouseenter') { //jIE requires mouseenter, does not fire mouseover
if($(this).parents().closest('div').hasClass('whatever')){
alert(e.type); //double-alerts mouseover
menu.show();
foldercmenu.hover(
function(){
$(this).show();
},
function(){
$(this).hide();
}
);
}else {
//do other stuff :-)
}
}else if(e.type==='mouseout' || e.type==='mouseleave'){ //IE requires mouseleave, does not fire mouseout
alert(e.type); //double-alerts mouseout
menu.hide();
$(this).unbind('mouseover mouseenter mouseout mouseleave');
}
//return false;
});
Este es un problema de evento mal documentado ... Gracias por mencionarlo. Me tomó mucho tiempo encontrar esto. En mi situación, el comportamiento que sugieres (mouseover y mouseout disparando nuevamente cuando ingresas/dejas nodos secundarios) solo ocurre en IE <10 - todos los navegadores modernos parecen entender que solo estoy interesado en manejar un evento para el elemento proporcionado y no para todos sus hijos Incluso stopPropagation/stopImmediatePropagation no me afectó. – 1nfiniti