2011-05-05 78 views
1

我有這個菜單(@ jsFiddle),其中會出現這種情況給出下面的鼠標事件:需要幫助的JQuery的鼠標懸停菜單與子菜單

  1. 懸停在Movies
  2. 然後開始拖動鼠標鼠標懸停在Movie library
  3. 拖動時不小心觸摸Home菜單項
  4. 導致Home子菜單出現並隱藏Movies子菜單。

這不是我想要的效果。所以即時尋求一些援助。我該如何解決這個問題,如果即時通訊拖動我的鼠標,我不小心觸摸了一些其他菜單選項,JavaScript將足夠聰明,知道它不應該隱藏所選的子菜單。

我可以在懸停上添加某種延遲嗎?所有幫助表示讚賞!

回答

3

您可以使用hoverIntent到mousein油門/ mouseouts事件,以防止燃燒的意外(你需要這個,我認爲...)。檢查hiverIntent網站上的示例。你會喜歡的。

+0

我想盡量減少外部庫的使用。 – netbrain 2011-05-05 07:55:18

+1

當然,你可以檢查這個插件源,並採取你想要的......至少你會得到一些靈感。 – NilColor 2011-05-05 08:15:57

+0

您能否提供一個如何將插件與現有代碼集成的示例? (如果這不是太多問) – netbrain 2011-05-05 08:21:20

0

我希望這是你想要的。如果沒有,我相信它會引導你到最後的解決方案

$().ready(function(){ 
    $('ul.menu').hover(function(event){  
     var hoverItem = event.target; 
     //hide other ul's submenu 
     $(hoverItem).siblings('li').children('ul').stop(true,true).hide() 
     //show current submenu 
     $(hoverItem).children('ul').stop(true,true).fadeIn() 
    },function(event){ 
     //console.log(event.target); 
     $('ul.menu li').children('ul').stop(true,true).delay(1500).fadeOut() 
    }) 
}); 

希望能幫助你。乾杯

+0

沒有不完美。現在,如果將鼠標懸停在「家庭」上以轉到「電影」,則只顯示家庭子菜單。 – netbrain 2011-05-05 08:05:03