小编给大家分享一下如何利用vue.js实现被选中状态,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以创建可维护性和可测试性更强的代码库,Vue允许可以将一个网页分割成可复用的组件,每个组件都包含属于自己的HTML、CSS、JavaScript,以用来渲染网页中相应的地方,所以越来越多的前端开发者使用vue。
在使用原型实现使不选中状态改变之后,接触到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";
}
}
}
})
效果如图所示:
以上是“如何利用vue.js实现被选中状态”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。