2010-05-07 55 views
6

DIV A的Mouseenter將DIV B設置爲show()。我要的是對DIV A的鼠標離開,如果他們不上空盤旋DIV B,隱藏DIV B.但是,在DIV A的鼠標離開,如果他們徘徊在DIV B保持顯示DIV B.JQUERY if not hover

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

你可以顯示標記嗎? – Mark 2010-05-07 13:48:27

回答

4

它可能就像只使用hover一樣簡單。

http://jsbin.com/ojipu/2

...但是,這要看是什麼標記的樣子。

+0

它依靠Div B使用與Div A相同的空間,如果他們之間有距離,該怎麼辦? – fixmycode 2011-07-11 03:49:55

+0

我不確定你會如何離開Div A,如果它們沒有重疊,仍然知道要顯示Div B。 – Mark 2011-07-16 18:08:36

+0

我有同樣的問題。檢查此:http://stackoverflow.com/questions/6645551/how-to-interrupt-a-hovers-handlerout – fixmycode 2011-07-19 20:59:33

5

你可以添加一個類到#DIVB懸停然後檢查mouseleave#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

我實際上使用了你的兩個解決方案。謝謝你們倆! – s15199d 2010-05-07 15:18:24