vue,一路走来(15)--简单投票系统
今天记录一下简单的投票系统,主要实现选中至少五张作品,并提交投票。
思路:选中作品,将作品id存入到数组里。 取消投票,则从数组中移除该作品id。
如图效果:
<li v-for="(opu,index) in opus">
<router-link :to="{ name: 'voteDetail', params: { id: opu.id }}" :id="opu.id">
<div class="opus-img">
<img v-bind:src="opu.thumb" alt="">
<span class="num-select">
{{opu.votes}}票
</span>
</div>
<div class="author clearfix">
<ul>
<li style="text-align:left;">{{opu.xingming}}</li>
<li style="color:#5eb95e;font-size:14px;">{{opu.bianhao}}号</li>
<li style="text-align:right;">{{opu.nianling}}</li>
</ul>
</div>
</router-link>
<div v-bind:class="{btnSelectauthod:isInArray(resultgroup,opu.id)}" class="nobtn-select-authod" @click="postSupport(opu.id)"><span v-if="!isInArray(resultgroup,opu.id)">{{textconfirm}}</span><span v-else>{{notextconfirm}}</span></div>
</li>
// 判断数组是否有某个元素
isInArray(arr,value){
for(var i = ; i < arr.length; i++){
if(value === arr[i]){
return true;
}
}
return false;
},
//选择作品投票按钮
postSupport(num){
this.group.push(num);
this.resultgroup = [];
var hash = {};
for (var i = , elem; (elem = this.group[i]) != null; i++) {
// 排除重复元素
if (!hash[elem]) {
this.resultgroup.push(elem);
hash[elem] = true;
}else{
// 清除指定元素
Array.prototype.removeByValue = function(val) {
for(var i=; i<this.length; i++) {
if(this[i] == val) {
this.splice(i, );
break;
}
}
}
this.resultgroup.removeByValue(elem);
hash[elem] = false;
}
}
// console.log(this.isInArray(this.resultgroup,'9529')) 是否存在9529
window.sessionStorage.setItem('resultgroup',JSON.stringify(this.resultgroup))
// console.log(sessionStorage.getItem('resultgroup'))
},
vue,一路走来(15)--简单投票系统的更多相关文章
- vue,一路走来(1)--构建vue项目
2016年12月--2017年5月,接触前端框架vue,一路走来,觉得有必要把遇到的问题记录下来. 那时,vux用的是1.0的vue,然而vue2.0已经出来了,于是我结合了mint-ui一起来做项目 ...
- vue,一路走来(3)--数据交互vue-resource
所有的静态页面布局完成后,最重要的就是数据交互了,简单来说,vue-resource就像jquery里的$.ajax,用来和后台交互数据的.放在created或ready里运行来获取或者更新数据的.不 ...
- vue,一路走来(2)--路由vue-router
安装 Mint UI cnpm install mint-ui --save 如果你的项目会用到 Mint UI 里较多的组件,最简单的方法就是把它们全部引入.此时需要在入口文件 main.js 中: ...
- vue,一路走来(17)--vue使用scss,并且全局引入公共scss样式
最近朋友问如何在vue项目中使用scss样式,想起之前项目是直接在main.js直接import css文件的,然而main.js不可以直接import scss文件. import './asset ...
- vue,一路走来(17)--底部tabbar切换
<router-link></router-link>存在router-link-active属性,那么底部tabbar切换就简单多了.不会再出现刷新回到第一个的bug. &l ...
- vue,一路走来(16)--本地及手机调试
闲暇时间记录一下如何绑定域名,实现本地及手机调试的过程.我的是微信开发项目,很多功能及操作都是基于微信来开发的,理所当然的就用到微信开发者工具了. 1.首先打开目录C:\Windows\System3 ...
- vue,一路走来(13)--vue微信分享
vue微信分享 今天记录一下vue微信分享. 1.先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”.这个不多说,见文档,只有绑定了才能进行下一步的动作 2.需要引入js文件 ...
- vue,一路走来(12)--父与子之间传参
今天想起一直没有记录父组件与子组件的传参问题,这在项目中一直用到. 父向子组件传参 Index.vue父组件中 <component-a :msgfromfa="(positionno ...
- vue,一路走来(7)--响应路由参数的变化
今天描述的问题估计会有很多人也遇到过. vue-router多个路由地址绑定一个组件造成created不执行 也就是文档描述的,如下图 我的解决方案: created () { console.log ...
随机推荐
- js undefined三目运算
js ajax传值中 "id":$('#id').val(), 如果#id不存在,使用$('#id').val()||‘’,可避免向后台传入undefined
- 用于理解C++右值引用的例子
#include <iostream> using namespace std; void printReference (int& value) { cout << ...
- Apache HttpClient之fluent API的使用
该方法为Apache HttpClient 4.5以上的版本支持,在官网有明确的说明. 对比以前的方式,其优点是代码更简洁,同时为线程安全的.仅举一个最简单的post栗子 JAR包信息: <de ...
- python其他篇(1)
1.跳过anaconda直接打开spyder或qtconsole: 打开终端,输入spyder或者jupyter-qtconsole 2.conda安装jpype1和pyhanlp: 参考:http: ...
- C语言 为什么要引入指针?
https://blog.csdn.net/chengxuyuan997/article/details/81231679 正文 在说为什么引入指针这个问题前先带大家了解一下什么是指针? 指针最为简短 ...
- Django2 + ORM 做一个简单的登陆
. ├── db.sqlite3 ├── manage.py ├── myormLogin │ ├── __init__.py │ ├── __pycache__ │ │ ├── __ ...
- java通配符写法
有时候我们会遇到这样的需求,需要把一个报文里的某些参数项通过通配符的形式配置成我们需要的结果值插入回报文中. String filetext = "<cn>#用户身份ID(主账号 ...
- 银联高校极客挑战赛 初赛 第一场 B
自学图论的码队弟弟 试图写非递归求解,然后TLE了一下午==,全程找不到bug,换成递归,一发AC 判断环写得很丑== #include<bits/stdc++.h> using name ...
- Flask学习 2修改路由规则 传入参数访问url
#!/usr/bin/env python # encoding: utf-8 """ @version: v1.0 @author: cxa @file: flask0 ...
- thread_process_action
import math import random import re import sys import threading from time import ctime, sleep from l ...