我這樣寫有點小問題,點擊權(quán)限管理打開后點擊部分管理1變色后,再點開電池管理下面的部門管理2也變色了,是因為循環(huán)ul的時候索引的問題嗎,求指導請輸入代碼
請輸入代碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>vue點擊切換顯示隱藏</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
<style type="text/css">
*{
padding: 0;
margin: 0;
font-size: 14px;
}
ul{
width: 200px;
height: auto;
}
h2{
background: green;
border: 1px solid #fff;
color: #fff;
height: 30px;
line-height: 30px;
text-indent: 24px;
}
h3{
background: #999;
height: 24px;
line-height: 24px;
border: 1px solid #fff;
text-indent: 50px;
}
a{
display: block;
width: 200px;
}
.zhe li.actives{
color: #fff;
background: red;
}
</style>
</head>
<body>
<div id="app">
<ul>
<li v-for="menu in menus" style="background:#ccc;margin:10px 0">
<a @click="toggle(menu)">{{menu.name}}</a>
<ul v-show="menu.open" style="background:green;" class="zhe">
<li v-for="(item,index) in menu.list" @click = "abc(index)" :class="{'actives':i==index}">{{item.name}}</li>
</ul>
</li>
</ul>
</div>
<script>
new Vue({
el: "#app",
data() {
return {
i:null,
menus: [
{
name: '權(quán)限管理',
open: false,
id:'aaa',
list: [
{
name: '用戶管理1'
},
{
name: '部門管理1'
},
{
name: '角色管理1'
},
{
name: '菜單管理1'
}
]
},
{
name: '電池管理',
open: false,
id:'bbb',
list: [
{
name: '用戶管理2'
},
{
name: '部門管理2'
},
{
name: '角色管理3'
},
{
name: '菜單管理4'
}
]
}
]
}
},
methods:{
toggle(item) {
if(!item.open){
this.menus.map((v)=>{
v.open=false
})
}
item.open=!item.open
},
abc(index){
this.i=0
this.i = index
},
}
})
</script>
</body>
</html>
在toggle方法后面加this.i = null
如果你還想再次點擊之前點擊的導航,其子級active不變,就在menus下面為每一個一級導航添加activeIndex變量用于記錄子級導航的激活下標。
這樣點擊了權(quán)限管理下的角色管理1,然后點擊電池管理下的用戶管理2,再次回到權(quán)限管理,角色管理1也是激活狀態(tài)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>vue點擊切換顯示隱藏</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
<style type="text/css">
*{
padding: 0;
margin: 0;
font-size: 14px;
}
ul{
width: 200px;
height: auto;
}
h2{
background: green;
border: 1px solid #fff;
color: #fff;
height: 30px;
line-height: 30px;
text-indent: 24px;
}
h3{
background: #999;
height: 24px;
line-height: 24px;
border: 1px solid #fff;
text-indent: 50px;
}
a{
display: block;
width: 200px;
}
.zhe li.actives{
color: #fff;
background: red;
}
</style>
</head>
<body>
<div id="app">
<ul>
<li v-for="(menu,menuindex) in menus" style="background:#ccc;margin:10px 0">
<a @click="toggle(menu)">{{menu.name}}</a>
<ul v-show="menu.open" style="background:green;" class="zhe">
<li v-for="(item,index) in menu.list" @click = "abc(index,menuindex)" :class="{'actives':menu.activeIndex==index}">{{item.name}}</li>
</ul>
</li>
</ul>
</div>
<script>
new Vue({
el: "#app",
data() {
return {
i:null,
menus: [
{
name: '權(quán)限管理',
open: false,
id:'aaa',
activeIndex:null,
list: [
{
name: '用戶管理1'
},
{
name: '部門管理1'
},
{
name: '角色管理1'
},
{
name: '菜單管理1'
}
]
},
{
name: '電池管理',
open: false,
id:'bbb',
activeIndex:null,
list: [
{
name: '用戶管理2'
},
{
name: '部門管理2'
},
{
name: '角色管理3'
},
{
name: '菜單管理4'
}
]
}
]
}
},
methods:{
toggle(item) {
if(!item.open){
this.menus.map((v)=>{
v.open=false
})
}
item.open=!item.open
},
abc(index,menuindex){
this.menus[menuindex].activeIndex = index
},
}
})
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>vue點擊切換顯示隱藏</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
<style type="text/css">
*{
padding: 0;
margin: 0;
font-size: 14px;
}
ul{
width: 200px;
height: auto;
}
h2{
background: green;
border: 1px solid #fff;
color: #fff;
height: 30px;
line-height: 30px;
text-indent: 24px;
}
h3{
background: #999;
height: 24px;
line-height: 24px;
border: 1px solid #fff;
text-indent: 50px;
}
a{
display: block;
width: 200px;
}
.zhe li.actives{
color: #fff;
background: red;
}
</style>
</head>
<body>
<div id="app">
<ul>
<li v-for="(menu,idx) in menus" style="background:#ccc;margin:10px 0">
<a @click="toggle(menu)">{{menu.name}}{{idx}}</a>
<ul v-show="menu.open" style="background:green;" class="zhe">
<li v-for="(item,index) in menu.list" @click = "abc(idx,index)" :class="{'actives':menu.i==index}">{{item.name}}</li>
</ul>
</li>
</ul>
</div>
<script>
new Vue({
el: "#app",
data() {
return {
menus: [
{
name: '權(quán)限管理',
open: false,
id:'aaa',
i:null,
list: [
{
name: '用戶管理1'
},
{
name: '部門管理1'
},
{
name: '角色管理1'
},
{
name: '菜單管理1'
}
]
},
{
name: '電池管理',
open: false,
id:'bbb',
i:null,
list: [
{
name: '用戶管理2'
},
{
name: '部門管理2'
},
{
name: '角色管理3'
},
{
name: '菜單管理4'
}
]
}
]
}
},
methods:{
toggle(item) {
if(!item.open){
this.menus.map((v)=>{
v.open=false;
v.i=null
})
}
item.open=!item.open
},
abc(idx,index){
this.menus[idx].i = index
},
}
})
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>vue點擊切換顯示隱藏</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
<style type="text/css">
* {
padding: 0;
margin: 0;
font-size: 14px;
}
ul {
width: 200px;
height: auto;
}
h2 {
background: green;
border: 1px solid #fff;
color: #fff;
height: 30px;
line-height: 30px;
text-indent: 24px;
}
h3 {
background: #999;
height: 24px;
line-height: 24px;
border: 1px solid #fff;
text-indent: 50px;
}
a {
display: block;
width: 200px;
}
.zhe li.actives {
color: #fff;
background: red;
}
</style>
</head>
<body>
<div id="app">
<ul>
<li v-for="(menu, idx) in menus" style="background:#ccc;margin:10px 0">
<a @click="toggle(menu)">{{menu.name}}</a>
<ul v-show="menu.open" style="background:green;" class="zhe">
<li v-for="(item,index) in menu.list" @click="abc(idx, item)" :class="item.isActive ? 'actives' : ''">{{item.name}}</li>
</ul>
</li>
</ul>
</div>
<script>
new Vue({
el: "#app",
data() {
return {
i: null,
menus: [{
name: '權(quán)限管理',
open: false,
id: 'aaa',
list: [{
name: '用戶管理1',
isActive: false
},
{
name: '部門管理1',
isActive: false
},
{
name: '角色管理1',
isActive: false
},
{
name: '菜單管理1',
isActive: false
}
]
},
{
name: '電池管理',
open: false,
id: 'bbb',
list: [{
name: '用戶管理2',
isActive: false
},
{
name: '部門管理2',
isActive: false
},
{
name: '角色管理3',
isActive: false
},
{
name: '菜單管理4',
isActive: false
}
]
}
]
}
},
methods: {
toggle(item) {
var index = this.menus.indexOf(item)
if (!item.open) {
this.menus.map((v, i) => {
if (i !== index) {
v.open = false
v.list.map(_o => {
_o.isActive = false
})
}
})
}
item.open = !item.open
},
abc(idx, item) {
this.menus[idx]['list'].forEach((o, i) => {
o.isActive = false
})
item.isActive = true
},
}
})
</script>
</body>
</html>
不知道是不是你想要的結(jié)果, 希望幫助到你
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。