2011-03-17 40 views
1

當我將鼠標懸停在列表項上而不是包含列表項時,我該如何做「某事」。當鼠標懸停在LI上時會做「某些事情」,但不會在包含LI的時候做「某些事情」

例如:

$('#mainnav li').hover(function() { 
    $(this).find('ul').stop(true,true).slideDown(100); 
    $(this).find('a:first').css({ 
     "background-image": 'url(/assets/images/nav_bg2.png)', 
     "color": '#fff', 
     "text-shadow" : '1px 1px 1px #000' 
    }); 

}, function() { 
    $(this).find('ul').stop(true,true).slideUp(100); 
    $(this).find('a:first').css({ 
     "background-image": 'none', 
     "color": '#630872', 
     "text-shadow" : '1px 1px 1px #fff' 
    }); 
}); 

樣本HTML

<div id="mainnav"> 
<ul> 
    <li class="active nav-home"> 

     <a href="/">Home</a> 
     <ul> 
      <li><a href="/home/welcome">Welcome</a></li> 
      <li><a href="/home/latest-conveyance">Latest Conveyance</a></li> 
     </ul> 
    </li> 

    <li class="nav-who-we-are"> 

     <a href="/who-we-are">Who We Are</a> 
     <ul> 
      <li><a href="/who-we-are/history">History</a></li> 
      <li><a href="/who-we-are/culture">Culture</a></li> 
      <li><a href="who-we-are/people">People</a></li> 
      <li><a href="who-we-are/vision">Vision</a></li> 

     </ul> 
    </li> 


    <li class="nav-what-we-do"> 
     <a href="/what-we-do">What We Do</a> 
     <ul> 
      <li><a href="/what-we-do/services">Services</a></li> 
      <li><a href="/what-we-do/projects">Projects</a></li> 

      <li><a href="/what-we-do/portfolio">Portfolio</a></li> 
      <li><a href="/what-we-do/philanthropy">Philanthropy</a></li> 
     </ul> 

    </li> 

</ul> 
</div> 

這裏的問題是,我想一些CSS應用到頂層列表項,而不是那些之下嵌套。當我將鼠標懸停在頂級列表項目內的列表項上時,該代碼當前應用了CSS。這是否有意義?

順便說一句,這是一個菜單,我想頂部的標籤,以保持燈火通明,而我通過下拉

回答

1

如果我理解正確的問題,然後看看使用child selector

$('#mainnav>ul>li').hover(function() { 
1

滾動在你的選擇更具體。嘗試更改'#mainnav li''#mainnav>ul>li''#mainnav>ul>li>a'

0

最簡單的事情將是確保CSS具體選擇那些麗的,你確實想強調:

#mainnav > ul > li.classname { 
    /* css code here */ 
} 

因此,設置類名的JQuery和CSS選擇器的組合只需選擇那些與頂級域名相匹配的li元素,一旦設置了類名就可以做到這一點。

相關問題