• 穿梭框(filter过滤方法,sort排序 v-model)


    
    
    <!DOCTYPE html>
    <html>
    <head lang="en">
    <meta charset="UTF-8">
    <title>穿梭框</title>
    <link rel="stylesheet" href="bootstrap.min.css"/>
    <script src="vue.min.js"></script>
    <style>
    #app{
    80%;
    margin: 0 auto;
    display: flex;
    }
    #app>ul{
    50%;
    display: inline-block;
    list-style: none;

    }
    #app>ul li:hover{
    color: red;
    cursor: pointer;
    }
    h4{
    100% ;
    margin: 0;
    padding: 8px 0;
    }
    span:hover{
    color: red;
    }

    </style>
    </head>
    <body>
    <div class="chuansuo">


    <div id="app" >
    <ul >
    <h4>列表一 <span > 总数:{{itemLeft.length}}</span></h4>
    <li v-for="(arr,i) in itemLeft"><input type="checkbox" v-model="arr.check"/>{{arr.name}} </li>
    </ul>
    <ul >
    <h4>列表二 <span > 总数 {{itemRight.length}}</span></h4>
    <li v-for="(select,i) in itemRight" >
    <input type="checkbox" v-model="select.check"/>
    {{select.name}}
    </li>
    </ul>

    </div>
    <p class="text-center" style="margin-top: 30px;">
    <span style="cursor: pointer " @click="chuansuoL">>> </span>
    <span style="cursor: pointer " @click="chuansuoR"> <<</span>
    </p>
    </div>
    
    
    <script>
    window.onload=function(){
    new Vue({
    el:'.chuansuo',
    data:{

    itemLeft:[
    {name:'刘德华1',check:false,id:'1'},
    {name:'刘德华2',check:true,id:'2'},
    {name:'刘德华3',check:false,id:'3'},
    {name:'刘德华4',check:false,id:'4'},
    {name:'刘德华5',check:false,id:'5'}
    ],
    itemRight:[

    ]
    },
    methods:{
    // 过滤公共方法(不是过滤器)
    addDate:function(item,type){
    return item.filter(function(v){
    return v.check==type;
    });
    },
    sortId:function(array,key){
    return array.sort(function(a,b){
    var x=a[key];
    var y=b[key];
    return x-y
    })
    },
    chuansuoL:function(){
    // 利用过滤函数筛选出itemLeft数组里check为true的对象 并导入到右边itemRight数组里
    // var add=this.itemLeft.filter(function(v){
    // return v.check==true;
    // });
    var add=this.addDate(this.itemLeft,true);
    // 合并数组赋值给itemRight
    this.itemRight=this.itemRight.concat(add);
    this.sortId(this.itemRight,'id'); /*按id大小排序*/
    // 把itemLeft数组里check为false的对象留下来(剩下了)
    var shengyu=this.addDate(this.itemLeft,false);
    this.itemLeft=shengyu;

    },
    chuansuoR:function(){
    var add=this.addDate(this.itemRight,true);
    this.itemLeft=this.itemLeft.concat(add);
    this.sortId(this.itemLeft,'id');
    var shengyu=this.addDate(this.itemRight,false);
    this.itemRight=shengyu; }, }, filters:{ } }) } </script></body></html>
     

     
  • 相关阅读:
    洛谷模板汇总
    BZOJ1787【AHOI2008】Meet紧急集合 <LCA>
    HDU3068 最长回文 <Manacher>
    UVa12345 Dynamic len(set(a[L:R])) <带修莫队>
    BZOJ2038 小Z的袜子 <莫队>
    BZOJ1103【POI2007】大都市meg <树上差分+树状数组>
    BZOJ3226【SDOI2008】校门外的区间
    BZOJ1012【JSOI2008】最大数 <线段树>
    20170918~24周总结
    BZOJ1934【SHOI2007】善意的投票 <网络流>
  • 原文地址:https://www.cnblogs.com/yaomengli/p/10160984.html
Copyright © 2020-2023  润新知