赞
踩
- <div id="box">
- <ul>
- <!-- v-bind缩写:单向绑定,绑定的是标签属性 v—on缩写@事件名 用来绑定事件-->
- <li v-for="(item,index) in list" :key="item.id" @click.stop="clk(item.id)">
- {{item.label}}
- <ul v-show='-1==bool.indexOf(item.id)'>
- <li v-for="(items,index) in item.children" :key="items.id" @click.stop="clk(items.id)">
- {{items.label}}
- <ul v-show='-1==bool.indexOf(items.id)'>
- <li v-for="(itemx,index) in list" :key="itemx.id" @click="clk(itemx.id)">
- {{itemx.label}}
- </li>
- </ul>
- </li>
- </ul>
- </li>
- </ul>
- </div>
- new Vue({
- el: '#box',
- data: {
- list: [{
- id: 1,
- label: '一级 1',
- children: [{
- id: 4,
- label: '二级 1-1',
- children: [{
- id: 9,
- label: '三级 1-1-1'
- }, {
- id: 10,
- label: '三级 1-1-2'
- }]
- }]
- }, {
- id: 2,
- label: '一级 2',
- children: [{
- id: 5,
- label: '二级 2-1'
- }, {
- id: 6,
- label: '二级 2-2'
- }]
- }, {
- id: 3,
- label: '一级 3',
- children: [{
- id: 7,
- label: '二级 3-1'
- }, {
- id: 8,
- label: '二级 3-2'
- }]
- }],
- bool: [] //用数组来接受传过来的值用于判断
- },
- methods: {
- clk(id) {
- if (this.bool.indexOf(id) == -1) {
- this.bool.push(id) //隐藏
- } else {
- this.bool.pop(id) //显示
- }
- }
- }
- })
事件修饰符
.stop阻止事件冒泡
.prevent阻止默认行为
.self是当前元素自身时触发
.once事件将只会触发一次
.passive立即触发浏览器默认行为,运行更流畅
.navigate()触发到底层组件的事件
Vue.set( , ,)参数1操作的对象,参数2添加的属性,参数3需要添加的val值
以上效果图如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。