2010-05-07 11 views
6

Mouseenter de DIV A establece DIV B para mostrar(). Lo que quiero es el mouseleave de Div A si son no se cierne sobre Div B, ocultar DIV B. Pero, en mouseleave de DIV A si se ciernen sobre DIV torreón B mostrando DIV B.JQUERY si no se desplaza

$('#DIVA').mouseenter(function() { 
     $('#DIVB').show(); 
    }).mouseleave(function() {  
     //if DIVB not hovering 
      $('#DIVB').hide(); 
     //end if 
    }); 
+0

¿Puedes mostrar el marcado? – Mark

Respuesta

4

Podría ser tan simple como simplemente usar hover.

http://jsbin.com/ojipu/2

... pero eso depende de lo que el margen de beneficio se parece.

+0

Se basa en Div B usando el mismo espacio que Div A, ¿qué pasa si tienen distancia entre ellos? – fixmycode

+0

No estoy seguro de cómo saldrías de Div A y aún sabrás mostrar Div B si no se superpusieron. – Mark

+0

Tuve el mismo problema. Comprueba esto: http://stackoverflow.com/questions/6645551/how-to-interrupt-a-hovers-handlerout – fixmycode

5

¿Podría agregar una clase a #DIVB al pasar el mouse y luego verificarlo en mouseleave para #DIVA?

$('#DIVB').hover(function(){ 
    $(this).addClass('active'); 
}, function(){ 
    $(this).removeClass('active'); 
}) 

$('#DIVA').mouseenter(function() { 
    $('#DIVB').show(); 
}).mouseleave(function() {  
    if(!$('#DIVB').hasClass('active')){ 
     $('#DIVB').hide(); 
    } 
}); 
+0

De hecho, utilicé partes de ambas soluciones. ¡Gracias a los dos! – s15199d

Cuestiones relacionadas