2010-05-07 18 views
6

Mauszeiger von DIV A setzt DIV B, um anzuzeigen(). Was ich will, ist auf mouseleave von DIV A, wenn sie nicht schwebt über DIV B sind, verbergen DIV B. Aber auf mouseleave von DIV A, wenn sie DIV B zu halten sind, schwebt über DIV B. zeigtJQUERY wenn nicht schweben

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

Können Sie das Markup anzeigen? – Mark

Antwort

4

Es könnte so einfach sein wie nur hover verwenden.

http://jsbin.com/ojipu/2

... aber das hängt davon ab, was der Markup aussieht.

+0

Es beruht darauf, dass Div B denselben Raum wie Div A benutzt, was ist, wenn sie Abstand haben? – fixmycode

+0

Ich bin mir nicht sicher, wie du Div A verlassen würdest und Div Div B immer noch zeigen kannst, wenn sie sich nicht überschneiden. – Mark

+0

Ich hatte das gleiche Problem. Überprüfen Sie dies: http://stackoverflow.com/questions/6645551/how-to-interrupt-a-hover-handlerout – fixmycode

5

Könnten Sie eine Klasse zu #DIVB auf Schwebeflug hinzufügen und dann auf mouseleave für #DIVA überprüfen?

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

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

Ich habe tatsächlich Bits von beiden Ihrer Lösungen verwendet. Danke euch beiden! – s15199d

Verwandte Themen