vue点击改变data值_关于vue中methods发生点击事件改变data中数据的问题

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<script type="text/javascript" src="js/vue.js"></script>

</head>

<body>

<div class="navDiv">

<ul>

<li v-for="(fir_nav, fir_index) in fir_level_nav">

<h3 v-on:click="show_sec_nav(fir_index)">{{ fir_nav }}</h3>

<ul>

<li v-for="(sec_nav, sec_index) in sec_level_nav[fir_index]" v-show="sec_navShow[fir_index]">

<h4 v-on:click="show_thr_nav(fir_index*3+sec_index)">{{sec_nav}}</h4>

<ul>

<li v-for="(thr_nav, thr_index) in thr_level_nav[fir_index*3+sec_index]" v-show="thr_navShow[fir_index*3+sec_index]">

<h5>{{thr_nav}}</h5>

</li>

</ul>

</li>

</ul>

</li>

</ul>

<p v-show="secHide">{{sec_navShow}}</p>

<p v-show="thrHide">{{thr_navShow}}</p>

<input type="text" v-model="sec_navShow[1]">

</div>

<script type="text/javascript">

var navData = [{

一级菜单1: [{

二级菜单1_1: ['三级菜单1_1_1', '三级菜单1_1_2', '三级菜单1_1_3', '三级菜单1_1_4']

},{

二级菜单1_2: ['三级菜单1_2_1', '三级菜单1_2_2', '三级菜单1_2_3']

},{

二级菜单1_3: ['三级菜单1_3_1', '三级菜单1_3_2']

},]

}, {

一级菜单2: [{

二级菜单2_1: ['三级菜单2_1_1', '三级菜单2_1_2']

},{

二级菜单2_2: ['三级菜单2_2_1', '三级菜单2_2_2']

},{

二级菜单2_3: ['三级菜单2_3_1', '三级菜单2_3_2', '三级菜单2_3_3']

},]

}, {

一级菜单3: [{

二级菜单3_1: ['三级菜单3_1_1', '三级菜单3_1_2', '三级菜单3_1_3', '三级菜单3_1_4']

},{

二级菜单3_2: ['三级菜单3_2_1', '三级菜单3_2_2']

},{

二级菜单3_3: ['三级菜单3_3_1', '三级菜单3_3_2', '三级菜单3_3_3']

},]

}, {

一级菜单4: [{

二级菜单4_1: ['三级菜单4_1_1', '三级菜单4_1_2', '三级菜单4_1_3']

},{

二级菜单4_2: ['三级菜单4_2_1', '三级菜单4_2_2', '三级菜单4_2_3', '三级菜单4_2_4']

},{

二级菜单4_3: ['三级菜单4_3_1', '三级菜单4_3_2']

},]

}];

function getNavList(arr) {

var nav = []

for (var s = 0; s < arr.length; s++) {

for (var key in arr[s]) {

if (arr[s].hasOwnProperty(key)) {

nav.push(key)

}

}

}

return nav

}

var navDiv = new Vue({

el: '.navDiv',

data: {

navDataDemo: navData,

sec_navList: [],

thr_navList: [],

sec_nav_show: [],

thr_nav_show: [],

secHide: true,

thrHide: true

},

methods: {

show_sec_nav: function (index) {

for (var i = 0; i < this.sec_navShow.length; i++) {

this.sec_navShow[i] = false

}

this.sec_navShow[index] = !this.sec_navShow[index]

this.secHide = !this.secHide

},

show_thr_nav: function (index) {

for (var i = 0; i < this.thr_navShow.length; i++) {

this.thr_navShow[i] = false

}

this.thr_navShow[index] = !this.thr_navShow[index]

this.thrHide = !this.thrHide

}

},

computed: {

fir_level_nav: function () {

var nav = []

for (var i = 0; i < this.navDataDemo.length; i++) {

for (var key in this.navDataDemo[i]) {

if (this.navDataDemo[i].hasOwnProperty(key)) {

nav.push(key)

}

}

}

return nav

},

sec_level_nav: function () {

for (var i = 0; i < this.navDataDemo.length; i++) {

var navName = getNavList(this.navDataDemo[i][this.fir_level_nav[i]])

this.sec_navList.push(navName)

}

return this.sec_navList

},

thr_level_nav: function () {

for (var i = 0; i < this.navDataDemo.length; i++) {

for (var s = 0; s < this.navDataDemo[i][this.fir_level_nav[i]].length; s++) {

for (var key in this.navDataDemo[i][this.fir_level_nav[i]][s]) {

if (this.navDataDemo[i][this.fir_level_nav[i]][s].hasOwnProperty(key)) {

this.thr_navList.push(this.navDataDemo[i][this.fir_level_nav[i]][s][key])

}

}

}

}

return this.thr_navList

},

sec_navShow: function () {

for (var i = 0; i < this.sec_level_nav.length; i++) {

this.sec_nav_show.push(false)

}

return this.sec_nav_show

},

thr_navShow: function () {

for (var i = 0; i < this.thr_level_nav.length; i++) {

this.thr_nav_show.push(false)

}

return this.thr_nav_show

}

}

})

</script>

</body>

</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值