vue 自定义属性判断点击每个item 显示隐藏
用到的知识点有循环读出列表 v-for map 或 vue.set
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | <! DOCTYPE html> < html ng-app="app"> < head > < meta charset="utf-8"> < meta name="viewport" content="width=device-width"> < title >点击显示隐藏</ title > </ head > < style type="text/css"> .item { border:1px solid #333; padding:10px 20px; margin:5px; background-color: #f5f5f5; } .item-bd { display: none; } .item.open .item-bd {display: block;} </ style > < body > < script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.0.3/vue.js"></ script > < div id="list"> < div class="item" v-for="(item, index) in items" @click="toggle(item)" :class="{'open':item.show}"> < div class="item-hd">{{index+1}}</ div > < div class="item-bd">{{item.content}}</ div > </ div > </ div > < script type="text/javascript"> var data = [{ content: 'aaaaaaaaaa', }, { content: 'bbbbbbbbbb', }, { content: 'cccccccccc', }]; data.map(function(item){ item.show = false; }); new Vue({ el: '#list', data : { items: data }, methods: { toggle: function(item) { item.show = !item.show; } } }) </ script > </ body > </ html > |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | <! DOCTYPE html> < html ng-app="app"> < head > < meta charset="utf-8"> < meta name="viewport" content="width=device-width"> < title >点击显示隐藏</ title > </ head > < style type="text/css"> .item { border:1px solid #333; padding:10px 20px; margin:5px; background-color: #f5f5f5; } .item-bd { display: none; } .item.open .item-bd {display: block;} </ style > < body > < script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.0.3/vue.js"></ script > < div id="list"> < div class="item" v-for="(item, index) in items" @click="toggle(item)" :class="{'open':item.show}"> < div class="item-hd">{{index+1}}</ div > < div class="item-bd">{{item.content}}</ div > </ div > </ div > < script type="text/javascript"> var data = [{ content: 'aaaaaaaaaa', }, { content: 'bbbbbbbbbb', }, { content: 'cccccccccc', }]; data.map(function(item){ item.show = false; }); new Vue({ el: '#list', data : { items: [{ content: 'aaaaaaaaaa', }, { content: 'bbbbbbbbbb', }, { content: 'cccccccccc', }] }, methods: { toggle: function(item) { Vue.set(item,'show',this.show=!this.show); } } }) </ script > </ body > </ html > |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步