簡單實現(xiàn)js點擊展開二級菜單功能
雖然,jQuery已經(jīng)非常好用了,但是實際的開發(fā)項目中,還是有很多限制,比如項目組奇葩的要求,不能使用任何插件,當然,也是考慮插件占用資源,畢竟100+KB對與小型項目來說還是非常大的。我最近就遇到做個點擊展開二級菜單的要求,當然只能用原生的JS去寫來實現(xiàn),我借鑒了網(wǎng)上的一個案例,補充一下,分享一下:
如果,默認打開頁面進來時二級菜單是隱藏的,需要點擊才能展現(xiàn)二級菜單,再點擊就是隱藏二級菜單。這里有兩個點,實現(xiàn)展現(xiàn)和隱藏用display="block"和display="none",另外就是要做一個判斷,if else的判斷當前是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')">一級菜單1 <ul id="sub_menu_1"> <li>二級餐單1</li> <li>二級餐單1</li> <li>二級餐單1</li> <li>二級餐單1</li> </ul> </li> <li onclick="f('sub_menu_2')">一級菜單2 <ul id="sub_menu_2"> <li>二級菜單2</li> <li>二級菜單2</li> <li>二級菜單2</li> <li>二級菜單2</li> </ul> </li> <li>一級餐單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>
有個注意事項就是一級菜單的li不能添加a標簽,不然會不起作用。
如果,你的頁面默認進來二級菜單是展現(xiàn)的,點擊時才關(guān)閉。直接把style標簽的樣式display="none"去掉就可以。同時需要修改一下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>
仔細看,不然你就會發(fā)現(xiàn)你需要點擊兩次才會出現(xiàn)想要的效果。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
bootstrap中模態(tài)框、模態(tài)框的屬性實例詳解
這篇文章主要介紹了bootstrap中模態(tài)框、模態(tài)框的屬性實例詳解,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02Cropper.js進階之裁剪后保存至本地實現(xiàn)示例
這篇文章主要為大家介紹了Cropper.js進階之裁剪后保存至本地實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05jquery自定義插件結(jié)合baiduTemplate.js實現(xiàn)異步刷新(附源碼)
本文主要介紹了jquery自定義插件結(jié)合baiduTemplate.js實現(xiàn)異步刷新的具體實例,具有很好的參考價值,需要的朋友一起來看下吧2016-12-12js中數(shù)組(Array)的排序(sort)注意事項說明
本篇文章主要是對js中數(shù)組(Array)的排序(sort)注意事項進行了說明介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-01-01