簡(jiǎn)單實(shí)現(xiàn)js點(diǎn)擊展開二級(jí)菜單功能
雖然,jQuery已經(jīng)非常好用了,但是實(shí)際的開發(fā)項(xiàng)目中,還是有很多限制,比如項(xiàng)目組奇葩的要求,不能使用任何插件,當(dāng)然,也是考慮插件占用資源,畢竟100+KB對(duì)與小型項(xiàng)目來說還是非常大的。我最近就遇到做個(gè)點(diǎn)擊展開二級(jí)菜單的要求,當(dāng)然只能用原生的JS去寫來實(shí)現(xiàn),我借鑒了網(wǎng)上的一個(gè)案例,補(bǔ)充一下,分享一下:
如果,默認(rèn)打開頁面進(jìn)來時(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ì)不起作用。
如果,你的頁面默認(rèn)進(jìn)來二級(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í)有所幫助,也希望大家多多支持腳本之家。
- 通用的二級(jí)菜單代碼(css+javascript)
- vue.js 左側(cè)二級(jí)菜單顯示與隱藏切換的實(shí)例代碼
- 鼠標(biāo)經(jīng)過顯示二級(jí)菜單js特效
- JS二級(jí)菜單不同實(shí)現(xiàn)方法分析【4種方法】
- javascript鼠標(biāo)滑過顯示二級(jí)菜單特效
- js實(shí)現(xiàn)向右橫向滑出的二級(jí)菜單效果
- vue.js實(shí)現(xiàn)二級(jí)菜單效果
- JS實(shí)現(xiàn)超精簡(jiǎn)響應(yīng)鼠標(biāo)顯示二級(jí)菜單代碼
- js實(shí)現(xiàn)二級(jí)菜單點(diǎn)擊顯示當(dāng)前內(nèi)容效果
- js仿小米二級(jí)菜單顯示效果
相關(guān)文章
微信小程序封裝的HTTP請(qǐng)求示例【附升級(jí)版】
這篇文章主要介紹了微信小程序封裝的HTTP請(qǐng)求,結(jié)合實(shí)例形式分析了微信小程序封裝基于wx.request方法的http請(qǐng)求相關(guān)操作與使用技巧,并附帶升級(jí)版示例供大家參考,需要的朋友可以參考下2019-05-05
JavaScript運(yùn)動(dòng)框架 鏈?zhǔn)竭\(yùn)動(dòng)到完美運(yùn)動(dòng)(五)
這篇文章主要為大家詳細(xì)介紹了JavaScript運(yùn)動(dòng)框架的第五部分,鏈?zhǔn)竭\(yùn)動(dòng)到完美運(yùn)動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
基于javascript實(shí)現(xiàn)數(shù)字英文驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)數(shù)字英文驗(yàn)證碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
javascript十六進(jìn)制數(shù)字和ASCII字符之間的轉(zhuǎn)換方法
下面小編就為大家?guī)硪黄猨avascript十六進(jìn)制數(shù)字和ASCII字符之間的轉(zhuǎn)換方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12
layui-table對(duì)返回的數(shù)據(jù)進(jìn)行轉(zhuǎn)變顯示的實(shí)例
今天小編就為大家分享一篇layui-table對(duì)返回的數(shù)據(jù)進(jìn)行轉(zhuǎn)變顯示的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09
JavaScript與jQuery中文檔就緒函數(shù)的區(qū)別
這篇文章主要介紹了JavaScript與jQuery中文檔就緒函數(shù)的區(qū)別,文章內(nèi)容介紹詳細(xì),具有一的的參考價(jià)值,需要的小伙伴可以參考一下2022-03-03

