zoukankan      html  css  js  c++  java
  • JQuery双列表交互模态窗口,列表项互相、上下移动

    天气:今天下雨

    要做做这么个东西:

    原谅我没有对angular有那么深的理解,dom操作什么的还是JQuery方便

    没指望这文章能派上用场,只是记性不好,这些组件什么的记录一下,现在代码写的超级烂,也给以后找个乐子吧:

     1 // 模态窗口controller
     2 angular.module('app')
     3     .controller('SelDevCtrl', ['$scope', '$http','$state', function($scope,$http,$state) {
     4       $('#abox').on('click','ul li',function(){
     5         $('#abox ul li').removeClass('selItemActive');
     6         $(this).addClass('selItemActive');
     7       });
     8       $('#nbox').on('click','ul li',function(){
     9         $('#nbox ul li').removeClass('selItemActive');
    10         $(this).addClass('selItemActive');
    11       });
    12       // 变换顺序
    13       // 按钮上
    14       $('#up').on('click',function(){
    15         var index = $('#nbox .selItemActive').index();
    16         // console.log(index);
    17         if(index){
    18           $('#nbox .selItemActive').insertBefore($('#nbox ul li').eq(index-1));
    19         }
    20       });
    21       // 按钮下
    22       $('#down').on('click',function(){
    23         var index = $('#nbox .selItemActive').index();
    24         var len = $('#nbox ul li').size();
    25         // console.log(len);
    26         if(index < len - 1){
    27           $('#nbox .selItemActive').insertAfter($('#nbox ul li').eq(index+1));
    28         }
    29       });
    30       //从 待选 移动到 已选
    31       $('#moveToRight').on('click',function(){
    32         $('#nbox ul').append($('#abox .selItemActive').removeClass('selItemActive'));
    33         $('#abox .selItemActive').remove();
    34       });
    35       //从 已选 移动到 待选
    36       $('#moveToLeft').on('click',function(){
    37         $('#abox ul').append($('#nbox .selItemActive').removeClass('selItemActive'));
    38         $('#nbox .selItemActive').remove();
    39       });
    40       //保存按钮
    41       $('#save').on('click',function(){
    42         var newnList;
    43         $('#nbox ul li').each(function(index,domEle){
    44           if (newnList) {
    45               newnList += ",";
    46               newnList += $(this).text().trim();
    47           } else {
    48             newnList = $(this).text().trim();
    49           }
    50         });
    51           $http({
    52             method: "get",
    53             url: "/nms/assets/js/api/device/columns/save.do",
    54               params: {
    55                 type:        $('#selectedColumns').attr("layout-type"),
    56                 columns:    newnList
    57               }
    58           }).
    59           success(function(data, status) {
    60             $('#selectColumns').modal('hide');
    61             //TODO 刷新页面
    62             // alert($('#selectedColumns').attr("list-url"));
    63             window.location.reload();
    64           });
    65       })
    66 }]);

     html部分,能看出来主体还是bootstrap的模态窗口:

     1 <!-- Modal -->
     2 <div class="modal fade slide-up disable-scroll" id="selectColumns" tabindex="-1" role="dialog" aria-hidden="false"  ng-controller="SelDevCtrl">
     3   <div class="modal-dialog ">
     4     <div class="modal-content-wrapper">
     5       <div class="modal-content">
     6         <div class="modal-header clearfix text-left">
     7           <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="pg-close fs-14"></i>
     8                 </button>
     9           <h5>请选择显示的列</h5>
    10         </div>
    11         <div class="modal-body" style="100%;box-sizing:border-box;overflow:hidden;">
    12           <div class="selColRow" style="">
    13             <!-- 待选列 -->
    14             <div class="selBox" id="abox">
    15               <ul id="unselectColumns">
    16                 <li ng-repeat="x in alist">
    17                   {{x}}
    18                 </li>
    19               </ul>
    20             </div>
    21             <!-- 移动按钮 -->
    22             <div class="selBtnWrap" style="">
    23               <div>
    24                 <button class="selBoxBtn" style="margin-top:55px;" id="moveToRight">&gt;</button>
    25                 <button class="selBoxBtn m-t-10" id="moveToLeft">&lt;</button>
    26               </div>
    27             </div>
    28             <!-- 已选择列 -->
    29             <div class="selBox" id="nbox">
    30               <ul id="selectedColumns" layout-type="device">
    31                 <li ng-repeat="x in nlist">
    32                   {{x}}
    33                 </li>
    34               </ul>
    35             </div>
    36             <!-- 按钮 右侧排序 -->
    37             <div class="selBtnWrap">
    38               <button class="selBoxBtn"  style="margin-top:55px;" id="up"></button>
    39               <button class="selBoxBtn m-t-10" id="down"></button>
    40             </div>
    41             <div style="clear:both;"></div>
    42           </div>
    43           <!-- 按钮 保存 取消 -->
    44           <div style="100%;padding-top:30px;overflow:hidden;">
    45             <div style="float:right;">
    46               <button class="btn btn-complete btn-cons" id="save">保存</button>
    47               <button class="btn btn-default btn-cons" data-dismiss="modal" aria-hidden="true">取消</button>
    48             </div>
    49           </div>
    50         </div>
    51       </div>
    52     </div>
    53   </div>
    54 </div>

    无论什么办法,能尽快解决问题就好

  • 相关阅读:
    Django+Bootstrap+Mysql 搭建个人博客(一)
    Django+nginx+uwsgi部署教程(centos7+ubuntu16.4)
    微信小程序入门(六)
    微信小程序入门(五)
    微信小程序入门(四)
    微信小程序入门(三)
    微信小程序入门(二)
    遗传算法常见问题解惑
    记录使用python实现QPSO求解最大值问题时,遇到的问题
    关于JetBrain系列软件的学生授权认证和授权到期(一年)重新申请的问题
  • 原文地址:https://www.cnblogs.com/oldcook/p/7116905.html
Copyright © 2011-2022 走看看