溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

簡(jiǎn)單實(shí)現(xiàn)js點(diǎn)擊展開(kāi)二級(jí)菜單功能

發(fā)布時(shí)間:2020-10-01 09:53:17 來(lái)源:腳本之家 閱讀:197 作者:well2049 欄目:web開(kāi)發(fā)

雖然,jQuery已經(jīng)非常好用了,但是實(shí)際的開(kāi)發(fā)項(xiàng)目中,還是有很多限制,比如項(xiàng)目組奇葩的要求,不能使用任何插件,當(dāng)然,也是考慮插件占用資源,畢竟100+KB對(duì)與小型項(xiàng)目來(lái)說(shuō)還是非常大的。我最近就遇到做個(gè)點(diǎn)擊展開(kāi)二級(jí)菜單的要求,當(dāng)然只能用原生的JS去寫(xiě)來(lái)實(shí)現(xiàn),我借鑒了網(wǎng)上的一個(gè)案例,補(bǔ)充一下,分享一下:

如果,默認(rèn)打開(kāi)頁(yè)面進(jìn)來(lái)時(shí)二級(jí)菜單是隱藏的,需要點(diǎn)擊才能展現(xiàn)二級(jí)菜單,再點(diǎn)擊就是隱藏二級(jí)菜單。這里有兩個(gè)點(diǎn),實(shí)現(xiàn)展現(xiàn)和隱藏用display="block"和display="none",另外就是要做一個(gè)判斷,if   else的判斷當(dāng)前是block還是none。

<!DOCTYPE html> 
<html lang="en"> 
<head> 
 <meta charset="UTF-8"> 
 <title>Document</title> 
 <style type="text/css"> 
  #sub_menu_1,#sub_menu_2{ 
   display: none; 
  } 
  ul li:hover{ 
   cursor: pointer; 
  } 
 </style> 
</head> 
<body> 
 <ul> 
  <li onclick = "f('sub_menu_1')">一級(jí)菜單1 
   <ul id="sub_menu_1"> 
    <li>二級(jí)餐單1</li> 
    <li>二級(jí)餐單1</li> 
    <li>二級(jí)餐單1</li> 
    <li>二級(jí)餐單1</li> 
   </ul> 
  </li> 
  <li onclick="f('sub_menu_2')">一級(jí)菜單2 
   <ul id="sub_menu_2"> 
    <li>二級(jí)菜單2</li> 
    <li>二級(jí)菜單2</li> 
    <li>二級(jí)菜單2</li> 
    <li>二級(jí)菜單2</li> 
   </ul> 
 
  </li> 
  <li>一級(jí)餐單3</li> 
 </ul> 
 <script type="text/javascript"> 
  function f(str){ 
    var sub_menu = document.getElementById(str); 
    var dis_v = sub_menu.style.display; 
     
    if(dis_v == "block") 
     sub_menu.style.display = "none"; 
    else 
     sub_menu.style.display = "block"; 
      
   } 
   
 </script> 
</body> 
</html> 

有個(gè)注意事項(xiàng)就是一級(jí)菜單的li不能添加a標(biāo)簽,不然會(huì)不起作用。
如果,你的頁(yè)面默認(rèn)進(jìn)來(lái)二級(jí)菜單是展現(xiàn)的,點(diǎn)擊時(shí)才關(guān)閉。直接把style標(biāo)簽的樣式display="none"去掉就可以。同時(shí)需要修改一下js。

<script type="text/javascript"> 
  function f(str){ 
    var sub_menu = document.getElementById(str); 
    var dis_v = sub_menu.style.display; 
     
    if(dis_v == "none") 
     sub_menu.style.display = "block"; 
    else 
     sub_menu.style.display = "none"; 
      
   } 
   
 </script> 

仔細(xì)看,不然你就會(huì)發(fā)現(xiàn)你需要點(diǎn)擊兩次才會(huì)出現(xiàn)想要的效果。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI