0
想象一下以下場景:您有一個包含多個項目(一個wordpress菜單btw)的菜單,並且在下面您想要顯示帶有一些鏈接的白色欄,但只有當你懸停在一個特定的菜單項上。然後,當您離開菜單項並將鼠標懸停在菜單正下方的白色條上時,它應該仍然存在,因爲您希望能夠點擊其中的鏈接。當鼠標既不懸停在菜單項上,也不在白條本身或任何包含的元素上時,白條只應再次淡出。懸停在兒童上與懸停在父母上不一樣
以下是我想出了:
$("#menu-item-62").hover(function(){ //this is the menu item
$(".white_bar_artists").show(); //this is the white bar that shall be shown
}, function(){
if(!$(".white_bar_artists").is(":hover")){ //the white bar should only disappear, if the user hovers neither over it nor the menu item
$(".white_bar_artists").hide();
}
});
到目前爲止,一切都很好。唯一的問題是,當我將鼠標懸停在菜單項上時,白色條只會消失,而不是當我懸停在白色條本身之外時。這就是爲什麼我添加以下代碼:
$(".white_bar_artists").find("*").mouseout(function(){
$(".white_bar_artists").hide();
$(".white_bar").show();
});
有趣的是,即使我用find("*")
檢索白條內的所有元素,當我將鼠標懸停在其中的一個,白條消失。儘管如此,第二組代碼似乎是必要的,以便不僅在菜單項懸停時白色條消失。
如何提高或者代碼片段,使其符合以下兩個條件:
- 懸停在菜單項和白條本身時,白條保持
- 白色欄消失時不懸停在其自身上,其中一個包含元素和菜單項
我不知道爲什麼,但是你的代碼不起作用 - 它什麼也沒做。 – weltschmerz
對我來說http://jsfiddle.net/popnoodles/kkQfd/ – Popnoodles
對不起,我錯了 - 這就是解決方案!謝謝! – weltschmerz