<!DOCTYPE html> |
<html> |
<head> |
<meta charset= "utf-8" > |
<meta http-equiv= "X-UA-Compatible" content= "IE=edge,chrome=1" > |
<title>Examples</title> |
<meta name= "description" content= "" > |
<meta name= "keywords" content= "" > |
<link href= "" rel= "stylesheet" > |
<script type= "text/javascript" src= "vue.js" ></script> |
<style type= "text/css" > |
[v-cloak] { |
display: none; |
} |
*{ |
margin:0; |
padding:0; |
} |
body{ |
font-family:Microsoft YaHei; |
} |
li{list-style:none;} |
div{ |
width:400px; |
background-color: #61a1bc; |
margin:50px auto; |
padding:35px 60px; |
} |
h1{ |
font-size:44px; |
text-align:center; |
} |
ul{ |
font-size:20px; |
text-align:left; |
margin:20px 0 15px; |
} |
ul li{ |
padding:20px 30px; |
background-color: #e35885; |
margin-bottom:8px; |
cursor:pointer; |
} |
ul li span{float:right;} |
ul li.active{ |
background-color: #8ec16d; |
} |
p{ |
border-top:1px solid rgba(255,255,255,0.5); |
padding:15px 30px; |
font-size:20px; |
text-align: left; |
} |
p span{float:right;} |
</style> |
</head> |
<body> |
<div id= "main" v-cloak> |
<h1>Services</h1> |
<ul> |
<li v- for = "item in items" @click= "toggleActive(item)" :class= "{'active':item.active}" >{{item.name}}<span>{{item.price | currency}}</span></li> |
</ul> |
<p>Total: <span>{{total() | currency}}</span></p> |
</div> |
</body> |
<script type= "text/javascript" > |
var demo = new Vue({ |
el: '#main' , |
data: { |
items: [ |
{ |
name: 'Web Development' , |
price: 300, |
active: false |
},{ |
name: 'Design' , |
price: 400, |
active: false |
},{ |
name: 'Integration' , |
price: 250, |
active: false |
},{ |
name: 'Training' , |
price: 220, |
active: false |
} |
] |
}, |
methods: { |
toggleActive: function (i){ |
i.active = !i.active; |
}, |
total: function (){ |
var total = 0; |
this .items.forEach( function (s){ |
if (s.active){ |
total+= s.price; |
} |
}); |
return total; |
} |
} |
}); |
</script> |
</html> |