2010-10-08 32 views
0

如果我有一個菜單,出於可訪問性原因,當頁面加載時可見(所以如果歐盟沒有啓用JS,那麼他們仍然可以導航),但如果他們確實啓用了JS,我想隱藏它,那麼很容易,只需隱藏它即可。但是,如果事件觸發時鼠標懸停在元素上,我希望它保持打開狀態。jQuery隱藏,如果鼠標不在元素onload

問題是(無論如何,我認爲這也適用於其他瀏覽器),如果鼠標不移動,沒有任何事件從鼠標觸發,以確定它當前在菜單上,如果這樣做感?

$(function(){ 
    $("#myMenu").animate({"width": 'toggle'}, 350).hide(); 
}); 

我試圖把它直接到窗口中加載事件爲好,但是這不會起作用,因爲事件參數對象,顯示window成爲當前目標,而不是元素的鼠標目前結束,也這是不是因爲所有窗口負載等待圖像等等等等的問題好

$(window).load(function(e){ 
    console.log(e); 
    $("#myMenu").animate({"width": 'toggle'}, 350).hide(); 
}); 

回答

1

你爲什麼不只是顯示它無限期,直到鼠標移動,然後檢查是否鼠標在它和隱藏,如果不是?

連接一個鼠標移動事件窗口,然後檢查,看它是否已經結束了那個DOM元素:

$(window).mousemove(function(event) { 
    var mouse_x = event.pageX; 
    var mouse_y = event.pageY; 

    // then get position and height/width of menu's DOM element, hiding if the mouse isn't in it 
    }); 
+0

不是一個壞主意,但我把它轉換成'$(窗口)。一(」 mousemove「,函數......」,而不是像這樣的純綁定,否則它會一直髮射,這不是最好的,特別是當我不需要它時(或者可以解除綁定funciton,無論哪種方式) – Psytronic 2010-10-08 15:34:56

+0

是的,沒錯。Duh。 – Groovetrain 2010-10-08 15:38:52

相關問題