利用vue.js实现被选中状态的改变

2 篇文章 0 订阅
1 篇文章 0 订阅

在使用原型实现使不选中状态改变之后,接触到vue,就想着能不能使用vue再把功能实现一边,在上篇中的页面并没有动态实现页面,所有的数据也都是直接写在html中。而使用vue之后,已经能够实现页面根据数据的多少动态生成。而且代码量也大幅度减少。

html部分的代码:

<div data-role="page " class="page ">
    <div class="center " id="app">
        <div class="group ">
	    <ul>
		<li v-for = "todo in todos ">
		    <div class="groupheader ">
			<div class="Gheadertext ">{{todo.groupheader}}</div>
		    </div>
		    <div  class = "groupbody ">
			<ul class="list ">
			    <li v-for="cell in todo.groupbody" v-on:click="exchange($event)" class="groupcell">
				<div class="celltext">
				    {{ cell.text }}
				</div>
				<img class="selectimg"  src="img/select.png ">
			    </li>
			</ul>
		    </div>
		 </li>
	    </ul>
	</div>
    </div>
</div>
数据代码:

var datas = {
    todos :[
    {
        groupheader : 'MB3101',
        groupbody:[
            { text: '调整不当'},
            { text: '光电开关损坏' },
            { text: '镜面积灰' },
            { text: '调整不当' },
            { text: '光电开关损坏' },
            { text: '镜面积灰' },
            { text: '调整不当' },
            { text: '光电开关损坏' },
            { text: '镜面积灰' },
        ]
    },
    {
        groupheader : 'MB3102',
        groupbody:[
            { text: '调整不当' },
            { text: '光电开关损坏' },
            { text: '镜面积灰' },
            { text: '调整不当' },
            { text: '光电开关损坏' },
            { text: '镜面积灰' },
            { text: '调整不当' },
            { text: '光电开关损坏' },
            { text: '镜面积灰' },
        ]
    },
    {
        groupheader : 'MB3103',
        groupbody:[
            { text: '调整不当' },
            { text: '光电开关损坏' },
            { text: '镜面积灰' },
            { text: '调整不当' },
            { text: '光电开关损坏' },
            { text: '镜面积灰' },
            { text: '调整不当' },
            { text: '光电开关损坏' },
            { text: '镜面积灰' },
        ]
    }
  ]
}

js部分的代码:

new Vue({
  el: '#app',
  data:datas,
  methods:{
      exchange:function(event){
         //获取被点击的元素对象
         var a = event.target;
         //获取被点击元素中的子元素<img>
         var cellimg = a.getElementsByTagName("img")[0];
         if(a.className == "groupcell") {
	     a.className = "selectcell";
	     cellimg.style.display = "block";
	 } 
	 else if(a.className == "selectcell") {
	     a.className = "groupcell";
	     cellimg.style.display = "none";
	 }
      }
  }
})

效果如图所示:

   

















  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值