2011-02-08 78 views
0

試圖使一個簡單的jQuery下降到這裏,這是我到目前爲止的代碼:如何檢測jQuery中兩個元素的mouseout?

HTML:

<ul id="nav"> 
     <li> 
      <a href="">Cats</a> 
      <ul> 
       <li><a href="">Tigers</a></li> 
       <li><a href="">Lions</a></li> 
       <li><a href="">Leopards</a></li> 
      </ul> 
     </li> 
     <li> 
      <a href="">Dogs</a> 
      <ul> 
       <li><a href="">Wolves</a></li> 
       <li><a href="">Dingos</a></li> 
       <li><a href="">Dholes</a></li> 
      </ul> 
     </li>    
    </ul> 

CSS:

ul#nav { border: 1px solid #ccc; overflow: hidden; background: #eee; padding: 0; } 
ul#nav li { display: block; float: left; border-right: 1px solid #ccc; padding: 10px 20px; } 

ul#nav li ul { display: none; border: 1px solid #ccc; overflow: hidden; position: absolute; background: #eee; width: 100px; padding: 0; margin: 10px 0 0 -20px; border-bottom: none; } 
ul#nav li ul li { display: block; float: left; width: 100%; border-bottom: 1px solid #ccc; } 

的jQuery:

$(document).ready(function() { 

    $('ul#nav > li > a').mouseover(function() { 
      $(this).parent().find('ul').slideDown('fast'); 
    }); 

    $('ul#nav > li > a').mouseout(function() { 
      $(this).parent().find('ul').slideUp('fast'); 
    }); 

}); 

問題現在當用戶不再懸停在導航鏈接上時, ul ul會消失。如果用戶沒有懸停在導航鏈接上,則我需要它離開。這個怎麼做?

回答

2

http://jsfiddle.net/Bdpnd/

$(document).ready(function() { 

    $('ul#nav > li').hover(function() { 
     $(this).children('ul').slideDown('fast'); 
    },function() { 
     $(this).children('ul').stop(true, true).slideUp('fast'); 
    }); 

}); 

我做了一個懸停只是縮短了一下,主要的但是,是有它的下拉上慄,而不是一個,因爲李將擴大到持有內容,所以當你在新的元素上徘徊的時候,你實際上不會離開li。

0

您的代碼綁定了鼠標懸停,當鼠標超出此範圍並懸停在ul mouseout事件觸發時。

嘗試綁定在UL#NAV>裏的事件,通過更換代碼:

$('ul#nav > li').mouseenter(function(){ 
    clearTimeout($(this).data('timeoutId')); 
    $(this).find('ul').slideDown('fast'); 
}).mouseleave(function(){ 
    var someelement = this; 
    var timeoutId = setTimeout(function(){ $(someelement).find('ul').fadeOut("slow");}, 650); 
    $(someelement).data('timeoutId', timeoutId); 
}); 

您可以確定超時,其增加navegability和用戶XP