jailly

目录结构


后台管理平台
├ font-awesome-4.7.0
| ├ css
| ├ fonts
| ├ less
| └ scss
├ jquery-1.12.4.min.js
└ 可编辑表格.html

 

code


 

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Title</title>
  6     <link rel="stylesheet" href="font-awesome-4.7.0/css/font-awesome.min.css">
  7     <style>
  8         table{
  9             table-layout: fixed;
 10         }
 11         tr{
 12             text-align:center;
 13             line-height:20px;
 14             height:20px;
 15         }
 16         td{
 17             overflow: hidden;
 18         }
 19         #edit-toggle{
 20             display:inline-block;
 21             padding:5px 20px;
 22             margin-left:50px;
 23             text-align: center;
 24             background-color: #6a769e;
 25             border-radius: 20px;
 26             color:white;
 27             font-size: 14px;
 28 
 29         }
 30         #edit-toggle:hover , .on{
 31             opacity:0.6;
 32             cursor:pointer;
 33         }
 34         .edit-box{
 35             display:block;
 36             width:100px;
 37             height:20px;
 38             border:none;
 39             padding:0;
 40             text-align: center;
 41             line-height: 20px;
 42         }
 43         .prompt-box{
 44             position:fixed;
 45             left:350px;
 46             top:100px;
 47             background-color: #119911;
 48             padding:5px 10px;
 49             border-radius: 10px;
 50             font-size: 12px;
 51             color:white;
 52         }
 53 
 54     </style>
 55 
 56 </head>
 57 <body>
 58 
 59     <p>
 60         <input type="button" value="全选" id="selectAll">
 61         <input type="button" value="反选" id="reverseAll">
 62         <input type="button" value="取消" id="cancelAll">
 63 
 64         <span id="edit-toggle">进入编辑模式</span>
 65 
 66     </p>
 67 
 68     <table border="1" cellspacing="0" width="300">
 69         <thead>
 70             <tr>
 71                 <td width="50">选择</td>
 72                 <td width="100">主机名</td>
 73                 <td width="100">端口</td>
 74                 <td width="50">状态</td>
 75             </tr>
 76         </thead>
 77 
 78         <tbody id="tb">
 79             <tr>
 80                 <td>
 81                     <input type="checkbox">
 82                 </td>
 83                 <td target="ip">1.1.1.1</td>
 84                 <td target="port">80</td>
 85                 <td target="status">下线</td>
 86             </tr>
 87 
 88             <tr>
 89                 <td>
 90                     <input type="checkbox">
 91                 </td>
 92                 <td target="ip">1.1.1.2</td>
 93                 <td target="port">80</td>
 94                 <td target="status">下线</td>
 95             </tr>
 96 
 97             <tr>
 98                 <td>
 99                     <input type="checkbox">
100                 </td>
101                 <td target="ip">1.1.1.3</td>
102                 <td target="port">80</td>
103                 <td target="status">下线</td>
104             </tr>
105 
106             <tr>
107                 <td>
108                     <input type="checkbox">
109                 </td>
110                 <td target="ip">1.1.1.4</td>
111                 <td target="port">80</td>
112                 <td target="status">下线</td>
113             </tr>
114 
115             <tr>
116                 <td colspan="4">
117                     <i class="fa fa-plus-circle" aria-hidden="true" id="add"></i>
118                 </td>
119             </tr>
120 
121         </tbody>
122 
123     </table>
124 
125 
126     <script src="jquery-1.12.4.min.js"></script>
127     <script>
128         $(function () {
129 //            点击全选按钮触发 全选 事件
130             $(\'#selectAll\').click(function () {
131                 $(\'#tb :checkbox\').prop(\'checked\',true);
132             });
133 
134 //            点击反选按钮触发 反选 事件
135             $(\'#reverseAll\').click(function () {
136                 $(\'#tb :checkbox\').each(function () {
137                     var status = $(this).prop(\'checked\');
138                     $(this).prop(\'checked\',!status);
139                 })
140             });
141 
142 //            点击取消按钮触发 取消选择 事件
143             $(\'#cancelAll\').click(function () {
144                 $(\'#tb :checkbox\').prop(\'checked\',false);
145             });
146 
147 //            点击 进入编辑模式 按钮触发 进入编辑/退出编辑 事件
148             $(\'#edit-toggle\').click(function () {
149 
150                 if($(this).hasClass(\'on\')){
151                     $(this).removeClass(\'on\');
152                     $(this).text(\'进入编辑模式\');
153                     ShowPrompt(\'已退出编辑模式\');
154                     editOff($(\'#tb :checked\'))
155                 }else{
156                     $(this).addClass(\'on\');
157                     $(this).text(\'退出编辑模式\');
158                     ShowPrompt(\'已进入编辑模式\');
159                     editOn($(\'#tb :checked\'))
160                 }
161 
162             });
163 
164 //            编辑模式下, 更改复选框的选中状态 触发 进入编辑/退出编辑 事件
165             $(\'#tb\').delegate(\':checkbox\',\'change\',function () {
166                 if ($(\'#edit-toggle\').hasClass(\'on\')) {
167                     if ($(this).prop(\'checked\')) {
168                         editOn($(this));
169                     } else {
170                         editOff($(this));
171                     }
172                 }
173             });
174 
175 //            函数:显示 进入/退出编辑模式 的提示框
176             function ShowPrompt(text){
177                 var promptBox = document.createElement(\'div\');
178                 promptBox.classList.add(\'prompt-box\');
179                 promptBox.innerText = text;
180                 $(\'body\').append(promptBox);
181                 var opacity = 1;
182                 var timer = setTimeout(function () {
183                     setInterval(function () {
184                         opacity -= 0.05;
185                         $(promptBox).css(\'opacity\',opacity);
186                     },50);
187                     if(opacity<0){
188                         clearInterval(timer);
189                         promptBox.remove();
190                     }
191                 },1000)
192             }
193 
194 //            函数:进入 编辑模式
195             function editOn(obj) {
196 //                ip 和 port 单元格变成可输入
197                 obj.parent().siblings(\'[target="ip"],[target="port"]\').each(function () {
198                     var input = document.createElement(\'input\');
199                     input.value = $(this).text();
200                     input.className = \'edit-box\';
201                     $(this).html(\'\');
202                     $(this).append(input);
203                 });
204 
205 //                状态 单元格变成可输入
206                 obj.parent().siblings(\'[target="status"]\').each(function () {
207                     var d = {
208                         \'在线\':\'0\',
209                         \'下线\':\'1\'
210                     };
211                     var selectBox = document.createElement(\'select\');
212                     var option0 = document.createElement(\'option\');
213                     option0.innerText = \'在线\';
214                     option0.value = 0;
215                     var option1 = document.createElement(\'option\');
216                     option1.innerText = \'下线\';
217                     option1.value = 1;
218                     selectBox.appendChild(option0);
219                     selectBox.appendChild(option1);
220                     selectBox.value = d[$(this).text()];
221                     $(this).html(\'\');
222                     $(this).append(selectBox);
223                 });
224             }
225 
226 //            函数:退出 编辑模式
227             function editOff(obj) {
228                 obj.parent().siblings(\'[target="ip"],[target="port"]\').each(function () {
229                     $(this).text($(this).children(\'input\').val());
230                 });
231 
232                 obj.parent().siblings(\'[target="status"]\').each(function () {
233                     var d={
234                       \'0\':\'在线\',
235                       \'1\':\'下线\'
236                     };
237                     $(this).text(d[$(this).children(\'select\').val()]);
238                 });
239             }
240 
241 //            点击 添加按钮 触发添加项目事件
242             $(\'#add\').click(function () {
243                 var tr = \'<tr><td><input type="checkbox"></td><td target="ip"></td><td target="port"></td><td target="status">下线</td></tr>\';
244                 $(this).parent().parent().before(tr);
245             })
246 
247 
248         })
249 
250 
251 
252 
253     </script>
254 
255 </body>
256 </html>
可编辑表格.html

 

分类:

技术点:

相关文章:

  • 2022-01-27
  • 2021-08-24
  • 2021-06-28
  • 2022-12-23
  • 2021-07-28
  • 2021-12-07
  • 2022-12-23
  • 2021-12-03
猜你喜欢
  • 2021-11-23
  • 2021-11-23
  • 2021-10-29
  • 2022-12-23
  • 2021-10-24
  • 2021-11-22
  • 2021-11-15
相关资源
相似解决方案