您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關jquery如何實現多級菜單效果,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
具體內容如下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> *{ margin:0; padding:0; font-size:14px; } ul,li{ list-style:none; } .box{ margin:10px; padding:10px; width:300px; border:1px dashed #008000; /*漸進增強:首先設置一個純色的背景,對于不兼容css3的瀏覽器來說會使用純色,對于兼容的瀏覽器,我們在下面在額外的增加一些漸變色,這樣會覆蓋掉上面*/ background:#ffe470; background:-webkit-linear-gradient(top left,#2b93d2,#fa5889,#cde074,#ffe470); background:-moz-linear-gradient(top left,#2b93d2,#fa5889,#cde074,#ffe470); background:-o-linear-gradient(top left,#2b93d2,#fa5889,#cde074,#ffe470); background:linear-gradient(top left,#2b93d2,#fa5889,#cde074,#ffe470); } .box li{ position:relative; line-height:30px; } .box em{ position:absolute; top:7px; left:0; width:16px; height:16px; background:url("img/icon.png") no-repeat -59px -28px; cursor:pointer; } .box span{ display:block; padding-left:20px; } .box em.open{ background-position:-42px -28px; } .box .two{ margin-left:20px; } .box .three{ margin-left:40px; } .box .four{ margin-left:60px; } .box .two,.box .three,.box .four{ display:none; } </style> </head> <body> <div class='box' id='box'> <ul> <li> <em></em> <span>第一級第一個</span> <ul class='two'> <li><span>第二級第一個</span></li> <li> <em></em><span>第二級第二個</span> <ul class='three'> <li><span>第三極第一個</span></li> <li><span>第三極第二個</span></li> <li> <em></em><span>第三極第三個</span> <ul class='four'> <li><span>第四級第一個</span></li> <li><span>第四級第二個</span></li> <li><span>第四級第三個</span></li> </ul> </li> </ul> </li> <li> <em></em><span>第二級第三個</span> <ul class='three'> <li><span>第三級第一個</span></li> <li><span>第三級第二個</span></li> <li><span>第三級第三個</span></li> </ul> </li> </ul> </li> </ul> <ul> <li> <em></em> <span>第一級第一個</span> <ul class='two'> <li><span>第二級第一個</span></li> <li> <em></em><span>第二級第二個</span> <ul class='three'> <li><span>第三極第一個</span></li> <li><span>第三極第二個</span></li> <li> <em></em><span>第三極第三個</span> <ul class='four'> <li><span>第四級第一個</span></li> <li><span>第四級第二個</span></li> <li><span>第四級第三個</span></li> </ul> </li> </ul> </li> <li> <em></em><span>第二級第三個</span> <ul class='three'> <li><span>第三級第一個</span></li> <li><span>第三級第二個</span></li> <li><span>第三級第三個</span></li> </ul> </li> </ul> </li> </ul> </div> <script> var $box = $('#box'); $box.find("span").each(function(index,item){ var $pre = $(this).prev(); if($pre[0] && $pre[0].tagName.toLowerCase()==="em"){ $(this).css("cursor","pointer"); } }) //jQuery里面除了bind、unbind、on、off、click這些綁定事件的方式外,還提供了一種delegate(1.7版本以前用的是live) function fn(){ var $par = $(this).parent(); var $ul = $($par.children('ul')[0]); var $em = $($par.children('em')[0]); if($ul.length>0){ $ul.toggle(); $em.toggleClass("open"); var isBlock = $ul.css('display')==="block"?true:false; //如果當前的是收縮的話,我們需要把子子孫孫中所有的ul/em都隱藏和移除open樣式 if(isBlock){ $par.find('ul').css("display","none"); $par.find("em").removeClass("open"); } } } $box.delegate('em',"click",fn)//給$box綁定點擊事件,如果當前的事件源是em的話,我們執行fn $box.delegate('span',"click",fn)//給$box綁定點擊事件,如果當前的事件源是em的話,我們執行fn </script> </body> </html>
關于“jquery如何實現多級菜單效果”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。