2014-11-21 93 views
-1

考慮以下HTML改變根元素的背景顏色點擊或選擇子元素

HTML

<div id='cssmenu'> 
<ul> 
    <li class='has-sub'><a href='#'><span>Skills</span></a> 
     <ul> 
     <li class='has-sub'><a href='#'><span>Analysis</span></a> 
      <ul> 
       <li><a href='#'><span>Category and Skills</span></a></li> 

      </ul> 
     </li> 
     <li class='has-sub'><a href='#'><span>Employee Skills </span></a> 
     </li> 
      <li class='has-sub'><a href='#'><span>Setup </span></a> 
      <ul> 
       <li><a href='#'><span>Skills</span></a></li> 
       <li class='last'><a href='#'><span>Skills Categories</span></a></li> 
       <li class='last'><a href='#'><span>Skill Level</span></a></li> 
      </ul> 
     </li> 
     </ul> 
    </li> 

    <li class='has-sub'><a href='#'><span>Proposals</span></a> 

      <ul> 
       <li><a href='#'><span>New Propsals</span></a></li> 
       <li class='last'><a href='#'><span>List of Proposals</span></a></li> 
      </ul> 


    </li> 
    <li class="has-sub"><a href='#'><span>Procurement</span></a> 
     <ul> 
     <li><a href='#'><span>Indents</span></a></li> 
      <li><a href='#'><span>Status</span></a></li> 
     </ul> 
    </li> 

</ul> 
</div> 

CSS

@import url(http://fonts.googleapis.com/css?family=Oxygen+Mono); 
/* Please Keep this font import at the very top of any CSS file */ 
@charset "UTF-8"; 
/* Starter CSS for Flyout Menu */ 
#cssmenu { 
    padding: 0; 
    margin: 0; 
    border: 0; 
    line-height: 1; 
} 
#cssmenu ul, 
#cssmenu ul li, 
#cssmenu ul ul { 
    list-style: none; 
    margin: 0; 
    padding: 0; 
} 
#cssmenu ul { 
    position: relative; 
    z-index: 597; 
    float: left; 
} 
#cssmenu ul li { 
    float: left; 
    min-height: 1px; 
    line-height: 1em; 
    vertical-align: middle; 
    position: relative; 
} 
#cssmenu ul li.hover, 
#cssmenu ul li:hover { 
    position: relative; 
    z-index: 599; 
    cursor: default; 
} 
#cssmenu ul ul { 
    visibility: hidden; 
    position: absolute; 
    top: 100%; 
    left: 0px; 
    z-index: 598; 
    width: 100%; 
} 
#cssmenu ul ul li { 
    float: none; 
} 
#cssmenu ul ul ul { 
    top: -2px; 
    right: 0; 
} 
#cssmenu ul li:hover > ul { 
    visibility: visible; 
} 
#cssmenu ul ul { 
    top: 1px; 
    left: 99%; 
} 
#cssmenu ul li { 
    float: none; 
} 
#cssmenu ul ul { 
    margin-top: 1px; 
} 
#cssmenu ul ul li { 
    font-weight: normal; 
} 
/* Custom CSS Styles */ 
#cssmenu { 
    width: 200px; 
    background: #333333; 
    font-family: 'Oxygen Mono', Tahoma, Arial, sans-serif; 
    zoom: 1; 
    font-size: 12px; 
} 
#cssmenu:before { 
    content: ''; 
    display: block; 
} 
#cssmenu:after { 
    content: ''; 
    display: table; 
    clear: both; 
} 
#cssmenu a { 
    display: block; 
    padding: 15px 20px; 
    color: #ffffff; 
    text-decoration: none; 
    text-transform: uppercase; 
} 
#cssmenu > ul { 
    width: 200px; 
} 
#cssmenu ul ul { 
    width: 200px; 
} 
#cssmenu > ul > li > a { 
    border-right: 4px solid #1b9bff; 
    color: #ffffff; 
} 
#cssmenu > ul > li > a:hover { 
    color: #ffffff; 
} 
#cssmenu > ul > li.active a { 
    background: #1b9bff; 
} 
#cssmenu > ul > li a:hover, 
#cssmenu > ul > li:hover a { 
    background: #1b9bff; 
} 
#cssmenu li { 
    position: relative; 
} 
#cssmenu ul li.has-sub > a:after { 
    content: '+'; 
    position: absolute; 
    top: 50%; 
    right: 15px; 
    margin-top: -6px; 
} 
#cssmenu ul ul li.first { 
    -webkit-border-radius: 0 3px 0 0; 
    -moz-border-radius: 0 3px 0 0; 
    border-radius: 0 3px 0 0; 
} 
#cssmenu ul ul li.last { 
    -webkit-border-radius: 0 0 3px 0; 
    -moz-border-radius: 0 0 3px 0; 
    border-radius: 0 0 3px 0; 
    border-bottom: 0; 
} 
#cssmenu ul ul { 
    -webkit-border-radius: 0 3px 3px 0; 
    -moz-border-radius: 0 3px 3px 0; 
    border-radius: 0 3px 3px 0; 
} 
#cssmenu ul ul { 
    border: 1px solid #0082e7; 
} 
#cssmenu ul ul a { 
    font-size: 12px; 
    color: #ffffff; 
} 
#cssmenu ul ul a:hover { 
    color: #ffffff; 
} 
#cssmenu ul ul li { 
    border-bottom: 1px solid #0082e7; 
} 
#cssmenu ul ul li:hover > a { 
    background: #4eb1ff; 
    color: #ffffff; 
} 
#cssmenu.align-right > ul > li > a { 
    border-left: 4px solid #1b9bff; 
    border-right: none; 
} 
#cssmenu.align-right { 
    float: right; 
} 
#cssmenu.align-right li { 
    text-align: right; 
} 
#cssmenu.align-right ul li.has-sub > a:before { 
    content: '+'; 
    position: absolute; 
    top: 50%; 
    left: 15px; 
    margin-top: -6px; 
} 
#cssmenu.align-right ul li.has-sub > a:after { 
    content: none; 
} 
#cssmenu.align-right ul ul { 
    visibility: hidden; 
    position: absolute; 
    top: 0; 
    left: -100%; 
    z-index: 598; 
    width: 100%; 
} 
#cssmenu.align-right ul ul li.first { 
    -webkit-border-radius: 3px 0 0 0; 
    -moz-border-radius: 3px 0 0 0; 
    border-radius: 3px 0 0 0; 
} 
#cssmenu.align-right ul ul li.last { 
    -webkit-border-radius: 0 0 0 3px; 
    -moz-border-radius: 0 0 0 3px; 
    border-radius: 0 0 0 3px; 
} 
#cssmenu.align-right ul ul { 
    -webkit-border-radius: 3px 0 0 3px; 
    -moz-border-radius: 3px 0 0 3px; 
    border-radius: 3px 0 0 3px; 
} 

jsfiddle

在這裏,我做了一個多級菜單items.What我想的是,在點擊任何一個子元素的根的Elemen噸將有它的背景顏色改變(排序所選項目的風格)和子元素面板消失。我怎樣才能做到這一點?

MY TRY

$(document).ready(function() { 
      $("a").click(function(event) { 
       $(".has-sub").css("background-color","blue"); 
      }); 

我上面的代碼試圖要做兩件事情,但沒有奏效。

+1

「@ charset」需要在「@ import」之前出現。 – 2014-11-21 06:12:37

+0

你可以附上截圖,你到底想要什麼? – 2014-11-21 06:31:00

回答

0

請讓我知道這是你在找什麼?

<html> 
    <head> 
    <style type="text/css"> 
    @import url(http://fonts.googleapis.com/css?family=Oxygen+Mono); 
    /* Please Keep this font import at the very top of any CSS file */ 
    @charset "UTF-8"; 
    /* Starter CSS for Flyout Menu */ 
    #cssmenu { 
     padding: 0; 
     margin: 0; 
     border: 0; 
     line-height: 1; 
    } 
    #cssmenu ul, 
    #cssmenu ul li, 
    #cssmenu ul ul { 
     list-style: none; 
     margin: 0; 
     padding: 0; 
    } 
    #cssmenu ul { 
     position: relative; 
     z-index: 597; 
     float: left; 
    } 
    #cssmenu ul li { 
     float: left; 
     min-height: 1px; 
     line-height: 1em; 
     vertical-align: middle; 
     position: relative; 
    } 
    #cssmenu ul li.hover, 
    #cssmenu ul li:hover { 
     position: relative; 
     z-index: 599; 
     cursor: default; 
    } 
    #cssmenu ul ul { 
     visibility: hidden; 
     position: absolute; 
     top: 100%; 
     left: 0px; 
     z-index: 598; 
     width: 100%; 
    } 
    #cssmenu ul ul li { 
     float: none; 
    } 
    #cssmenu ul ul ul { 
     top: -2px; 
     right: 0; 
    } 
    #cssmenu ul li:hover > ul { 
     visibility: visible; 
    } 
    #cssmenu ul ul { 
     top: 1px; 
     left: 99%; 
    } 
    #cssmenu ul li { 
     float: none; 
    } 
    #cssmenu ul ul { 
     margin-top: 1px; 
    } 
    #cssmenu ul ul li { 
     font-weight: normal; 
    } 
    /* Custom CSS Styles */ 
    #cssmenu { 
     width: 200px; 
     background: #333333; 
     font-family: 'Oxygen Mono', Tahoma, Arial, sans-serif; 
     zoom: 1; 
     font-size: 12px; 
    } 
    #cssmenu:before { 
     content: ''; 
     display: block; 
    } 
    #cssmenu:after { 
     content: ''; 
     display: table; 
     clear: both; 
    } 
    #cssmenu a { 
     display: block; 
     padding: 15px 20px; 
     color: #ffffff; 
     text-decoration: none; 
     text-transform: uppercase; 
    } 
    #cssmenu > ul { 
     width: 200px; 
    } 
    #cssmenu ul ul { 
     width: 200px; 
    } 
    #cssmenu > ul > li > a { 
     border-right: 4px solid #1b9bff; 
     color: #ffffff; 
    } 
    #cssmenu > ul > li > a:hover { 
     color: #ffffff; 
    } 
    #cssmenu > ul > li.active a { 
     background: #1b9bff; 
    } 
    #cssmenu > ul > li a:hover 
    { 
     background: #1b9bff; 

    } 
    #cssmenu ul ul li 
    { 
     background-color:#1b9bff; 
    } 

    #cssmenu li { 
     position: relative; 
    } 
    #cssmenu ul li.has-sub > a:after { 
     content: '+'; 
     position: absolute; 
     top: 50%; 
     right: 15px; 
     margin-top: -6px; 
    } 
    #cssmenu ul ul li.first { 
     -webkit-border-radius: 0 3px 0 0; 
     -moz-border-radius: 0 3px 0 0; 
     border-radius: 0 3px 0 0; 
    } 
    #cssmenu ul ul li.last { 
     -webkit-border-radius: 0 0 3px 0; 
     -moz-border-radius: 0 0 3px 0; 
     border-radius: 0 0 3px 0; 
     border-bottom: 0; 
    } 
    #cssmenu ul ul { 
     -webkit-border-radius: 0 3px 3px 0; 
     -moz-border-radius: 0 3px 3px 0; 
     border-radius: 0 3px 3px 0; 
    } 
    #cssmenu ul ul { 
     border: 1px solid #0082e7; 
    } 
    #cssmenu ul ul a { 
     font-size: 12px; 
     color: #ffffff; 
    } 
    #cssmenu ul ul a:hover { 
     color: #ffffff; 
    } 
    #cssmenu ul ul li { 
     border-bottom: 1px solid #0082e7; 
    } 
    #cssmenu ul ul li:hover > a { 
     background: #4eb1ff; 
     color: #ffffff; 
    } 
    #cssmenu.align-right > ul > li > a { 
     border-left: 4px solid #1b9bff; 
     border-right: none; 
    } 
    #cssmenu.align-right { 
     float: right; 
    } 
    #cssmenu.align-right li { 
     text-align: right; 
    } 
    #cssmenu.align-right ul li.has-sub > a:before { 
     content: '+'; 
     position: absolute; 
     top: 50%; 
     left: 15px; 
     margin-top: -6px; 
    } 
    #cssmenu.align-right ul li.has-sub > a:after { 
     content: none; 
    } 
    #cssmenu.align-right ul ul { 
     visibility: hidden; 
     position: absolute; 
     top: 0; 
     left: -100%; 
     z-index: 598; 
     width: 100%; 
    } 
    #cssmenu.align-right ul ul li.first { 
     -webkit-border-radius: 3px 0 0 0; 
     -moz-border-radius: 3px 0 0 0; 
     border-radius: 3px 0 0 0; 
    } 
    #cssmenu.align-right ul ul li.last { 
     -webkit-border-radius: 0 0 0 3px; 
     -moz-border-radius: 0 0 0 3px; 
     border-radius: 0 0 0 3px; 
    } 
    #cssmenu.align-right ul ul { 
     -webkit-border-radius: 3px 0 0 3px; 
     -moz-border-radius: 3px 0 0 3px; 
     border-radius: 3px 0 0 3px; 
    } 


    </style> 
    </head> 
    <body> 
    <div id='cssmenu'> 
    <ul> 
     <li class='has-sub'><a href='#'><span>Skills</span></a> 
      <ul> 
      <li class='has-sub'><a href='#'><span>Analysis</span></a> 
       <ul> 
        <li><a href='#'><span>Category and Skills</span></a></li> 

       </ul> 
      </li> 
      <li class='has-sub'><a href='#'><span>Employee Skills </span></a> 
      </li> 
       <li class='has-sub'><a href='#'><span>Setup </span></a> 
       <ul> 
        <li><a href='#'><span>Skills</span></a></li> 
        <li class='last'><a href='#'><span>Skills Categories</span></a></li> 
        <li class='last'><a href='#'><span>Skill Level</span></a></li> 
       </ul> 
      </li> 
      </ul> 
     </li> 

     <li class='has-sub'><a href='#'><span>Proposals</span></a> 

       <ul> 
        <li><a href='#'><span>New Propsals</span></a></li> 
        <li class='last'><a href='#'><span>List of Proposals</span></a></li> 
       </ul> 


     </li> 
     <li class="has-sub"><a href='#'><span>Procurement</span></a> 
      <ul> 
      <li><a href='#'><span>Indents</span></a></li> 
       <li><a href='#'><span>Status</span></a></li> 
      </ul> 
     </li> 

    </ul> 
    </div> 

    </body> 
    </html> 
+0

不工作,即選擇鏈接不改變背景顏色。 – 2014-11-21 06:03:59

1

會使用jQuery。

- 不確定您想要背景變化的確切元素,但這是基本的想法。

$(function() { 

$('.last').click(function() { 
      $(".has-sub").css("background", "yellow"); 
}) 
}); 
+0

這會將'yellow'背景設置爲所有具有'has-sub'類的元素。 – 2014-11-21 06:23:02

0

CSS

#cssmenu ul li a.select { 
    background: #4eb1ff; 
    color:#fff; 
} 

HTML

<ul> 
    <li class='has-sub'> 
    <a href='#' class="select "><span>Skills</span></a> 
    </li> 
</ul> 

試試這個。它爲我工作很好。