先給大家展示效果圖:

先看頁面代碼,列表的嵌套:
<div id="menuDiv"> <ul id="menu"> <li class="parentLi"> <span>B</span> <ul class="childrenUl"> <li class="childrenLi"><span>C</span></li> <li class="childrenLi"><span>C</span></li> <li class="childrenLi"><span>C</span></li> </ul> </li> <li class="parentLi"> <span>B</span> <ul class="childrenUl"> <li class="childrenLi"><span>C</span></li> <li class="childrenLi"><span>C</span></li> <li class="childrenLi"><span>C</span></li> </ul> </li> <li class="parentLi"> <span>B</span> <ul class="childrenUl"> <li class="childrenLi"><span>C</span></li> <li class="childrenLi"><span>C</span></li> <li class="childrenLi"><span>C</span></li> </ul> </li> </ul></div>
css 代碼,主要設(shè)置背景色和子菜單左邊框的樣式,設(shè)置懸浮和選中的樣式,開始設(shè)置子菜單不顯示(通過 js 設(shè)置點(diǎn)擊之后再顯示):
#menuDiv{ width: 200px; background-color: #029FD4;}.parentLi{ width: 100%; line-height: 40px; margin-top: 1px; background: #1C73BA; color: #fff; cursor: pointer; font-weight:bolder;}.parentLi span{ padding: 10px;}.parentLi:hover, .selectedParentMenu{ background: #0033CC;}.childrenUl{ background-color: #ffffff; display: none;}.childrenLi{ width: 100%; line-height: 30px; font-size: .9em; margin-top: 1px; background: #63B8FF; color: #000000; padding-left: 15px; cursor: pointer;}.childrenLi:hover, .selectedChildrenMenu{ border-left: 5px #0033CC solid; background: #0099CC; padding-left: 15px;}接下來就是點(diǎn)擊事件的代碼:
$(".parentLi").click(function(event) { $(this).children('.childrenUl').slideToggle(); }); $(".childrenLi").click(function(event) { event.stopPropagation(); $(".childrenLi").removeClass('selectedChildrenMenu'); $(".parentLi").removeClass('selectedParentMenu'); $(this).parents(".parentLi").addClass('selectedParentMenu'); $(this).addClass('selectedChildrenMenu'); });需要注意的是列表嵌套,會導(dǎo)致事件冒泡,所以在子菜單的點(diǎn)擊事件里面要組織冒泡,event.stopPropagation();
以上代碼很簡單,代碼就是注釋,jquery手風(fēng)琴菜單就實(shí)現(xiàn)了。需要的朋友快來參考下吧。
新聞熱點(diǎn)
疑難解答