Contoh dalam artikel ini menerangkan menu sekunder boleh lipat yang dilaksanakan oleh JavaScript+CSS. Kongsikan dengan semua orang untuk rujukan anda, butirannya adalah seperti berikut:
fail.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="NavigateMenu.aspx.cs" Inherits="NavigateMenu" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>无标题页</title> <script type="text/javascript" src="JScript.js" ></script> <style type="text/css"> *{ margin: 0px; padding: 0px; border:0px; } #nav{ width: 200px; margin: 0px; padding: 0px; font-size: 14px; line-height: 30px; } #nav li{ width: 180px; padding-left: 20px; padding-bottom: 1px; list-style-image: none; list-style-type: none; background-color: #FFFFFF; float: left; } #nav a{ padding-left: 20px; background-color: #BFBFBF; display: block; text-decoration: none; } #nav a:hover { background-color: #FF9175; } #nav li ul{ padding-top: 1px; list-style-image: none; list-style-type: none; } #nav li li{ padding-left: 0px; } #nav ul a{ background-color: #EBEBEB; } .cx { display:none; visibility:hidden; } .ex { display:inherit; visibility:inherit; } </style> <script type="text/javascript" > window.onload=function() { statUp(); } </script> </head> <body> <form id="form1" runat="server"> <div id="Parent"> <ul id="nav"> <li><a href="javascript:void(0);" onclick="doMenu(this)">菜单1</a> <ul> <li><a href="javascript:void(0);">菜单1_1</a></li> <li><a href="javascript:void(0);">菜单1_2</a></li> </ul> </li> <li><a href="javascript:void(0);" onclick="doMenu(this)">菜单2</a> <ul> <li><a href="javascript:void(0);">菜单2_1</a></li> <li><a href="javascript:void(0);">菜单2_2</a></li> </ul> </li> <li><a href="javascript:void(0);" onclick="doMenu(this)">菜单3</a> <ul> <li><a href="javascript:void(0);">菜单3_1</a></li> <li><a href="javascript:void(0);">菜单3_2</a></li> </ul> </li> </ul> </div> </form> </body> </html>
fail js:
function doMenu(obj){ var items=obj.parentNode.getElementsByTagName("ul"); var itmUl; if(items.length>0){ itmUl=items[0]; } if(itmUl.className!="ex"){ cxAll(); itmUl.className="ex"; }else{ itmUl.className="cx"; } } function statUp(){ cxAll(); } function cxAll(){ var ulDom=document.getElementById("nav"); var items=ulDom.getElementsByTagName("ul"); for (var i=0;i<items.length;i++) { items[i].className="cx"; } }
Apa yang perlu diperhatikan di sini ialah masalah pemuatan tertangguh Memandangkan kaedah operasi prapemprosesan statUp() perlu dilakukan semasa memuatkan halaman, apabila js ditulis ke dalam fail berasingan atau js ditulis dalam
Penyelesaian lain ialah menulis semua javaScript terus dalam
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>菜单</title> <script type="text/javascript" src="Untitled-3.js"></script> <style> *{ margin: 0px; padding: 0px; border:0px; } #nav{ width: 200px; margin: 0px; padding: 0px; font-size: 14px; line-height: 30px; } #nav li{ width: 180px; padding-left: 20px; padding-bottom: 1px; list-style-image: none; list-style-type: none; background-color: #FFFFFF; float: left; } #nav a{ padding-left: 20px; background-color: #BFBFBF; display: block; text-decoration: none; } #nav a:hover { background-color: #FF9175; } #nav li ul{ padding-top: 1px; list-style-image: none; list-style-type: none; } #nav li li{ padding-left: 0px; } #nav ul a{ background-color: #EBEBEB; } .cx { display:none; visibility:hidden; } .ex { display:inherit; visibility:inherit; } </style> </head> <body> <div id="Parent"> <ul id="nav"> <li><a href="javascript:void(0);" onclick="doMenu(this)">菜单1</a> <ul> <li><a href="javascript:void(0);">菜单1_1</a></li> <li><a href="javascript:void(0);">菜单1_2</a></li> </ul> </li> <li><a href="javascript:void(0);" onclick="doMenu(this)">菜单2</a> <ul> <li><a href="javascript:void(0);">菜单2_1</a></li> <li><a href="javascript:void(0);">菜单2_2</a></li> </ul> </li> <li><a href="javascript:void(0);" onclick="doMenu(this)">菜单3</a> <ul> <li><a href="javascript:void(0);">菜单3_1</a></li> <li><a href="javascript:void(0);">菜单3_2</a></li> </ul> </li> </ul> </div> </body> </html> <script type="text/javascript"> function doMenu(obj){ var items=obj.parentNode.getElementsByTagName("ul"); var itmUl; if(items.length>0){ itmUl=items[0]; } if(itmUl.className!="ex"){ cxAll(); itmUl.className="ex"; }else{ itmUl.className="cx"; } } function statUp(){ cxAll(); //var ulDom=document.getElementById("nav"); //var items=ulDom.getElementsByTagName("ul"); } function cxAll(){ var ulDom=document.getElementById("nav"); var items=ulDom.getElementsByTagName("ul"); for (var i=0;i<items.length;i++) { items[i].className="cx"; } } statUp(); </script>
Pembaca yang berminat dengan lebih banyak kandungan berkaitan JavaScript boleh menyemak topik khas di tapak ini: "Ringkasan teknik algoritma carian JavaScript", "Ringkasan kesan dan teknik khas animasi JavaScript ", "Ringkasan ralat JavaScript dan teknik penyahpepijatan", "Ringkasan struktur data JavaScript dan teknik algoritma", "Ringkasan algoritma dan teknik traversal JavaScript" dan "Ringkasan Matematik JavaScript bagi penggunaan operasi》
Saya harap artikel ini akan membantu semua orang dalam pengaturcaraan JavaScript.