2014-10-28 64 views
0

當鼠標離開祖父母div時觸發fadeOut的下拉菜單有點麻煩,我將這個問題搜索到死亡,還沒有找到一個優雅的解決方案。這裏是我的代碼:link離開祖父母div時的鼠標箭頭觸發

var main = function() { 
    $('nav').mouseenter(function() { 
     $('ul li ul').fadeIn('400'); 
    }); 

    $('nav ul li').mouseleave(function(){ 
     $('ul li ul').fadeOut('400'); 
    }); 
} 

$(document).ready(main); 
+0

解釋清楚的問題。 – 2014-10-28 17:49:07

回答

0

FIDDLE

$(this).find('ul').fadeOut('400'); 

是正確的,因爲$('ul>li>ul').fadeOut('400');無法針對具體的(current)裏。

使用下列標記的分層流量

var main = function() { 
     $('nav').mouseenter(function() { 
      $('ul li ul').fadeIn('400'); 
     }); 

     $('nav ul li').mouseleave(function() { 
      $(this).find('ul').fadeOut('400'); 
     }); 
    }; 
+0

感謝您的幫助!我想出了我最初的問題(除了這個問題之外)是''position:absolute''.container' CSS屬性導致它中止:[FIDDLE](http://jsfiddle.net/mftWK/82/ )。爲什麼絕對定位從一個低得多的流量導致這個? – 2014-10-28 18:17:18

1

DEMO:MY FIDDLE

你需要指定哪些元素()你試圖附加的事件。通過添加'>'你強制只將該事件附加到該元素的子元素。試試這個:

var main = function() { 
     $('nav').mouseenter(function() { 
      $(this).find('ul').fadeIn('400'); 
     }); 

     $('nav>ul>li').mouseleave(function() { 
      $(this).find('ul').fadeOut('400'); 
     }); 
    }; 
+0

你應該包括解釋爲什麼這可能工作,只是提供的代碼不會教導用戶什麼是錯的,以及如何解決它。 – 2014-10-28 17:49:37

+0

@PatrickEvans良好的通話。在我完成編輯之前,你已經得到了我。謝謝 – CodeGodie 2014-10-28 17:54:16

相關問題