双向选择

    <div class="modal fade" id="distribute" tabindex="-1" role="dialog"    data-backdrop="static" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-dialog" style="width: 800px;">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal"
                        aria-hidden="true">×</button>
                    <h4 class="modal-title" id="myModalLabel">为{{add_group_Name}}分配功能</h4>
                </div>
                <div class="modal-body" style="max-height:400px">
                    <div class="row" style="padding-bottom:5px;">
                        <div class="col-xs-5">
                            <h5>可分配功能</h5>
                        </div>
                        <div class="col-xs-2 text-center">
                            <h5>操作</h5>
                        </div>
                        <div class="col-xs-5">
                            <h5>已分配功能</h5>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-xs-5">
                            <select name="s1" size="10" multiple="multiple" id="s1" class="form_selectgro">
                                
                            </select>
                        </div>
                        <div class="col-xs-2 text-center">
                            <button type="button" name="addall" id="addall" value=""
                                class="btn btn-info mb15">
                                全选 <i class="fa fa-fast-forward"></i>
                            </button>
                            <br />
                            <button type="button" name="add" id="add" value=""
                                class="btn btn-primary mb15">
                                选择 <i class="fa fa-step-forward"></i>
                            </button>
                            <br />
                            <button type="button" name="remove" id="remove"
                                class="btn btn-danger mb15">
                                <i class="fa fa-step-backward"></i> 移除
                            </button>
                            <br />
                            <button type="button" name="removeall" id="removeall" value=""
                                class="btn btn-danger mb15">
                                <i class="fa fa-fast-backward"></i> 全删
                            </button>
                            <br /> <input type="button" name="s2up" id="s2up"
                                value="&uarr; 上移" class=‘btn btn-primary mb15‘ /><br /> <input
                                type="button" name="s2down" id="s2down" value="&darr; 下移"
                                class=‘btn btn-primary mb15‘ />
                        </div>
                        <div class="col-xs-5">
                            <select name="s2" size="10" multiple="multiple" id="s2" class="form_selectAdd">
                            </select>
                        </div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">取消
                    </button>
                    <button type="button" class="btn btn-info " ng-click="go_allot_Group();">确定</button>
                </div>
            </div>
        </div>
    </div>
                //功能分配菜单
                注释这行为了避免左选右选会多带过去数据 so.get(so.length-1).index == alloptions.length-1?so.prev().attr("selected",true):so.next().attr("selected",true);  
            $scope.AddCollectionAssureId = function(){
//                $("#s1 option:first,#s2 option:first").attr("selected",true);  
                $("#s1").dblclick(function(){  
                     var alloptions = $("#s1 option");  
                     var so = $("#s1 option:selected");  
//                     so.get(so.length-1).index == alloptions.length-1?so.prev().attr("selected",true):so.next().attr("selected",true);  
                     $("#s2").append(so);  
                });  
                $("#s2").dblclick(function(){  
                     var alloptions = $("#s2 option");  
                     var so = $("#s2 option:selected");  
//                     so.get(so.length-1).index == alloptions.length-1?so.prev().attr("selected",true):so.next().attr("selected",true);  
                     $("#s1").append(so);  
                });  
                $("#add").click(function(){  
                     var alloptions = $("#s1 option");  
                     var so = $("#s1 option:selected");  
//                     so.get(so.length-1).index == alloptions.length-1?so.prev().attr("selected",true):so.next().attr("selected",true);  
                     $("#s2").append(so); 
                });  
                $("#remove").click(function(){  
                     var alloptions = $("#s2 option");  
                     var so = $("#s2 option:selected");  
//                     so.get(so.length-1).index == alloptions.length-1?so.prev().attr("selected",true):so.next().attr("selected",true);  
                     $("#s1").append(so);
                });  
                $("#addall").click(function(){  
                    $("#s2").append($("#s1 option").attr("selected",true));  
                });  
                $("#removeall").click(function(){  
                    $("#s1").append($("#s2 option").attr("selected",true));  
                });  
                $("#s1up").click(function(){  
                     var so = $("#s1 option:selected");  
                     if(so.get(0).index!=0){  
                       so.each(function(){  
                           $(this).prev().before($(this));  
                       });  
                     }  
                });  

                $("#s1down").click(function(){  
                     var alloptions = $("#s1 option");  
                     var so = $("#s1 option:selected");  
                     if(so.get(so.length-1).index!=alloptions.length-1){  
                           for(var i=so.length-1;i>=0;i--)  
                           {  
                             var item = $(so.get(i));  
                             item.insertAfter(item.next());  
                           }  
                     }  
                });  

                $("#s2up").click(function(){  
                     var so = $("#s2 option:selected");  
                     if(so.get(0).index!=0){  
                       so.each(function(){  
                           $(this).prev().before($(this));  
                       });  
                     }  
                });  

                $("#s2down").click(function(){  
                     var alloptions = $("#s2 option");  
                     var so = $("#s2 option:selected");  
                     if(so.get(so.length-1).index!=alloptions.length-1){  
                           for(var i=so.length-1;i>=0;i--)  
                           {  
                             var item = $(so.get(i));  
                             item.insertAfter(item.next());  
                           }  
                     }  
                });  
            };
数据渲染页面去重
                 $("#s1 option").remove();
                 $("#s2 option").remove();
                 var CoreUrl = new coreUrl({"transCode":"B000200","funState":‘1‘,});
                 CoreUrl.$save(function(result){
                     var a =result.rows;
                     var CoreUrl2 = new coreUrl({"transCode":"B000405","groupId": $scope.add_group_id});
                     CoreUrl2.$save(function(data){
                         var n =data.row;
                         if(n!=undefined){
                            for(var i=0;i<n.length;i++){
                                $("#s2").append("<option value=‘"+n[i].funId+"‘>"+n[i].funDisplayName+"</option>"); 
                            }
                            //查找重复数据
                            var isrep;
                            for(var j =0;j<a.length;j++){
                                isrep = false;
                                for(var i=0;i<n.length;i++){
                                    if(n[i].funId==a[j].funId){
                                        isrep = true;
                                        break;
                                    }
                                }
                                if(!isrep){
                                    $("#s1").append("<option value=‘"+a[j].funId+"‘>"+a[j].funDisplayName+"</option>"); 
                                    }
                            };
                          }else{
                               for(var i=0;i<a.length;i++){
                                 $("#s1").append("<option value=‘"+a[i].funId+"‘>"+a[i].funDisplayName+"</option>"); 
                          }
                       }
                   },"json");
               },"json");
时间: 2024-10-19 05:11:09

双向选择的相关文章

双向选择的推荐系统

典型的推荐系统大多针对“用户--商品”这种模式下来展开研究的,然后现实中却有另外一种模式“用户--用户”或者“商品--商品”的现象,前者例如交友婚恋网,后者则有求职网之类的.对于交友婚恋网,除了男方对女方有好感外,女方也要对男方有心的情况下才能配成佳偶:同样求职网站给我推荐了一份Google CEO的工作,我会感兴趣,但是他对我不感兴趣是没有意义的.这样看来传统的推荐模式在这里是不适用的. 这种双向选择的推荐,目前提出的算法有 Reciprocal Recommendation.这种算法已经发出

修改后的双向选择排序函数

1 void BiSelectSort( int a[ ], int n ) /* 双向选择排序函数 */ 2 { int i, j, k, kmax, kmin, t; 3 for( i=0, j=n-1; i<j; ++i, --j ) 4 { kmin=kmax=i; 5 for( k=i+1; k<=j; ++k ) //一趟扫描找出最大值和最小值 6 { if( a[k]<a[kmin] ) kmin=k; 7 if( a[k]>a[kmax] ) kmax=k; 8 }

java七大排序——3_选择排序

选择排序: 将待排元素分为有序区间和无序区间,无序区间在前,每次从无序区间的所有元素中选出一个最大的数array[max],将该数与无序区间最后一个数进行交换(相当于在有序区间的第一位置新插入一个数)假设开始全部元素都是无序区间内的:继续重复上述操作 最终结果代码实现 public static void selectSort(int[] array) {// //无序区间在前边 //每次选最大数 for (int i = 0; i < array.length - 1; i++) { int

聚焦新相亲时代:女孩在京有五六套房哭着想嫁富2代

2017-09-20 07:31:00 来源: 中国青年报(北京)        举报 6984 分享到: 易信 微信 QQ空间 微博 更多 用微信扫码二维码 分享至好友和朋友圈 T + - (原标题:中青报聚焦新相亲时代:2亿人及其背后家庭组成的"擂台") 石家庄某相亲角.视觉中国 资料 平均算下来,每一分钟里,国内有22对新人拿着户口本走向民政局,进入婚姻生活:同时,8对夫妻在另外一个窗口签下离婚协议. 根据民政部公布的数字,中国的结婚率和离婚率曲线渐渐逼近一个闭合的大于号.婚姻的

Visual Basic快捷教程——流程控制

美籍匈牙利数学家冯·诺依曼于1946年提出"程序存储,顺序执行"的观念,为现代计算机奠定了重要基础.这一观点认为:应该把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存.电子计算机的数制宜采用二进制:计算机应该按照程序顺序执行.所以现在开发人员在编写的程序代码时,其实都隐含地认为计算机将来会一行一行按顺序来执行这些指令.但是在顺序执行的过程中,有时我们希望计算机根据条件判断来选择性地执行(或者不执行)一些代码--这时就需要用到选择结构(或称分支结构).另外一些时候,我们希

iOS经典面试题

转自:http://www.cnblogs.com/SharkBin/p/4618388.html 前言 写这篇文章的目的是因为前两天同学想应聘iOS开发,从网上找了iOS面试题和答案让我帮忙看看.我扫了一眼,倒吸了一口冷气,仔细一看,气的发 抖.整篇题目30多个没有一个答案是对的,总结这篇面试题的作者对iOS机制根本就是一知半解就敢发到网上,不管有心还是无心都是坑害新人.所以在这里总 结一下这几年面试别人和被别人面试遇到的一些我认为比较好的基础题目分享给大家,进阶题目在后续补充.我的理解如果有

万科药方:一个众筹的“家”有用吗?

一个由更加丰富安居乐业体验的社区,一个可以让业主部分自定义的社区,这才是万科创新的节点,一个迥异于当下地产只是卖房子,配套一些必要设施的颠覆式创新模式.而9月16日,万科发布关于100亿元额度内回购公司A股股份的报告书,其目的中,或许也有不希望自己的新模块被指手画脚的目的和纠结. 文/张书乐 刊载于<商界评论>2015年第6期,刊载时有删节 从2015年,万科作为一个地产商,却一直活跃在互联网行业的话题焦点之中:4月20日,万科V-LINK品牌发布会,让人联想到了正时髦的互联网+:而在5月1日

乐推微网站评测

随着自媒体的兴起,自媒体也越来越大众化,但是依靠自媒体盈利的却少之又少,很多人也是因为无法一直支撑下去而被迫放弃.其实有很多广告主,希望能 够找到精准客户,他们或许不会在意粉丝量的多少,更注重的是精准的用户群.那么就需要有那么一个平台,来连接自媒体与广告主,让广告主能够找到对应的自媒 体,也让自媒体能够充分的实现他们的价值. 下面我们将介绍这么一个平台——乐推微.乐推微是一个专业创新的微信营销推广平台.企业通过乐推微可以找到粉丝群为自己目标受众的微信自媒体,通过他们将自己的产品或服务以多种方式(

《微信群的那点儿事2》

上周的文章<微信群的那点儿事>,在圈内反响不小.所以今天狗尾续貂,继续跟大家聊聊微信群的那点儿事.耳闻<变形金刚4>上映10天,北美票房约1.75亿美元,内地约2.15亿美元(13.7亿人民币),这可能是电影史第一次,好莱坞片在中国和北美同天上映,而中国票房超北美这么多!明天,<变形金刚4>将踩过<阿凡达>,成中国影史最卖座电影,向20亿人民币前进--.插入这么多不着边的话,是想说明,就连<变形金刚4>这样的烂片都有如此业绩,说不定这个<微