2013-07-03 49 views
0

我發現過去詢問過的所有其他人都被告知要使用:hover,但現在不存在了。有沒有辦法從.hover()中獲得boolean?我目前使用.hover()檢查鼠標是否在jQuery中的東西?

爲了使div出現時,我mouseover一個按鈕,然後消失,當我mouseout。但是,我想添加一個檢查,以便div不會消失,除非鼠標不在按鈕上並且鼠標不在div之外。

+0

':hover'存在,在CSS中,只要你正確地構建標記,你就可以在這裏完成這個功能,而不需要任何javascript。 – adeneo

+0

等一下,什麼?什麼時候':hover'離開...? –

+0

我的錯誤 - 顯然它沒有。我指的是對這個問題的回覆進行編輯,「這個':hover'選擇器被jQuery 1.9.x中的.hover()方法刪除了。」 http://stackoverflow.com/questions/8981463/detect-if-hovering-over-element-with-jquery – user2223066

回答

3

這樣的事情應該工作...

var $in_div = 0; 

$("div").mouseenter(function(){ 
    $in_div = 1; 
}).mouseleave(function(){ 
    $in_div = 0; 
}); 

$("button").mouseenter(function(){ 
    $("div").show(); 
}).mouseleave(function(){ 
    if ($in_div == 1) { $("div").hide() } 
}); 

這是我平時使用,由500ms的延遲隱藏的另一種方法,我們可以,如果用戶中斷,如果我們想(在這種情況下,離開按鈕,但進入div)。

var $delay = 0; 
$("button").mouseenter(function(){ 
    clearTimeout($delay); // don't hide 
    $("div").show(); 
}).mouseleave(function(){ 
    $delay = setTimeout(function(){ $("div").hide() }, 500); 
}); 
$("div").mouseenter(function(){ 
    clearTimeout($delay); // don't hide 
}); 
相關問題