Commit 6ef63c2db7194053e62979d26afae24ebcbe8c8e
1 parent
d1cd8422
1、完善布置练习交互
Showing
1 changed file
with
166 additions
and
36 deletions
WebRoot/WEB-INF/jsp/sunvote/homework/homework_edit2.jsp
| ... | ... | @@ -109,7 +109,7 @@ |
| 109 | 109 | <col width="10%"/> |
| 110 | 110 | <thead> |
| 111 | 111 | <tr> |
| 112 | - <th style="text-align:left;"><span>题目数量</span><span class="add">+</span><input type="number" class="w_100" id="que_num" value="1"/><span class="redu">-</span></th> | |
| 112 | + <th style="text-align:left;"><span>题目数量</span><span class="add">+</span><input type="number" class="w_100" id="que_num" value="0"/><span class="redu">-</span></th> | |
| 113 | 113 | <th><span>选项个数</span><span class="add">+</span><input type="number" class="w_100 ans_num" id="ans_num" value="4"/><span class="redu">-</span></th> |
| 114 | 114 | <th><span>分值</span><span class="add">+</span><input type="number" class="w_100 score" id="score" value="1"/><span class="redu">-</span></th> |
| 115 | 115 | <th></th> |
| ... | ... | @@ -123,7 +123,7 @@ |
| 123 | 123 | <col width="20%"/> |
| 124 | 124 | <col width="10%"/> |
| 125 | 125 | <tbody class="subject_body_tbody"> |
| 126 | - <tr> | |
| 126 | + <!-- <tr> | |
| 127 | 127 | <td class="first">1</td> |
| 128 | 128 | <td class="middle"> |
| 129 | 129 | |
| ... | ... | @@ -157,7 +157,7 @@ |
| 157 | 157 | <td class="middle"><span>选项个数</span><span class="add">+</span><input type="number" class="w_100 ans_num" value="4"/><span class="redu">-</span></td> |
| 158 | 158 | <td class="middle"><span>分值</span><span class="add">+</span><input type="number" class="w_100 score" value="1"/><span class="redu">-</span></td> |
| 159 | 159 | <td class="last"><a onclick="del('${var.ID}');"><img src="static/images/remove.png" /></a></td> |
| 160 | - </tr> | |
| 160 | + </tr>--> | |
| 161 | 161 | </tbody> |
| 162 | 162 | </table> |
| 163 | 163 | </div> |
| ... | ... | @@ -202,64 +202,194 @@ |
| 202 | 202 | } |
| 203 | 203 | |
| 204 | 204 | }); |
| 205 | - var work={ | |
| 206 | - que_num:1, | |
| 205 | + var work={ //保存标题框中的数字框的值 | |
| 206 | + que_num:0, | |
| 207 | 207 | ans_num:4, |
| 208 | - score:1 | |
| 208 | + score:0 | |
| 209 | 209 | } |
| 210 | 210 | //点击+执行操作 |
| 211 | - function creat_work(obj){ | |
| 212 | - var _id=obj.siblings(".w_100").attr("id") | |
| 213 | - if(_id=="que_num"){ | |
| 214 | - var que_index=$(".subject_body_tbody tr").length+1; | |
| 215 | - $(".subject_body_tbody").append('<tr><td class="first">'+que_index+'</td><td class="middle"><div class="question question'+que_index+'"><ul></ul></div></td><td class="middle"><span>选项个数</span><span class="add">+</span><input type="number" class="w_100 ans_num" value="'+$("#ans_num").val()+'"/><span class="redu">-</span></td><td class="middle"><span>分值</span><span class="add">+</span><input type="number" class="w_100 score" value="1"/><span class="redu">-</span></td><td class="last"><a onclick="del();"><img src="static/images/remove.png" /></a></td></tr>'); | |
| 216 | - for(i=0;i<parseInt($("#ans_num").val());i++){ | |
| 217 | - $(".question"+que_index+" ul").append('<li class="btn btn-default">'+String.fromCharCode(0x41 + i)+'</li>') | |
| 211 | + function creat_work(_id,index,num){//index:开始序号,num:目标序号 | |
| 212 | + | |
| 213 | + if(_id=="que_num"){ //新增题目 | |
| 214 | + for(j=index;j<=num;j++){ | |
| 215 | + $(".subject_body_tbody").append('<tr><td class="first">'+j+'</td><td class="middle"><div class="question question'+j+'"><ul></ul></div></td><td class="middle"><span>选项个数</span><span class="add">+</span><input type="number" class="w_100 ans_num" value="'+$("#ans_num").val()+'"/><span class="redu">-</span></td><td class="middle"><span>分值</span><span class="add">+</span><input type="number" class="w_100 score" value="1"/><span class="redu">-</span></td><td class="last"><a class="remove"><img src="static/images/remove.png" /></a></td></tr>'); | |
| 216 | + for(i=0;i<work.ans_num;i++){ | |
| 217 | + $(".question"+j+" ul").append('<li class="btn btn-default">'+String.fromCharCode(0x41 + i)+'</li>') | |
| 218 | + } | |
| 219 | + } | |
| 220 | + } | |
| 221 | + else if(_id=="ans_num"){//新增选项 | |
| 222 | + for(j=1;j<=work.que_num;j++){ //轮询每道题目 | |
| 223 | + var now_length=$(".question"+j+" ul").find(".btn").length; //获取当前题目选项个数 | |
| 224 | + if(now_length<work.ans_num){ //当前题目选项个数小于数字框中个数,则把选项个数增加到数字框中的个数 | |
| 225 | + for(i=now_length;i<work.ans_num;i++){ | |
| 226 | + console.log("index:"+index+"-"+"num:"+num+"i:"+i); | |
| 227 | + $(".question"+j+" ul").append('<li class="btn btn-default">'+String.fromCharCode(0x41 + i)+'</li>') | |
| 228 | + } | |
| 229 | + } | |
| 230 | + if(now_length>work.ans_num){//当前题目选项个数大于数字框中个数,则把选项个数减少到数字框中的个数 | |
| 231 | + for(i=now_length;i>=work.ans_num;i--){ | |
| 232 | + $(".question"+j+" ul").find(".btn").eq(work.ans_num).remove(); | |
| 233 | + } | |
| 234 | + } | |
| 235 | + | |
| 236 | + } | |
| 237 | + | |
| 238 | + }else{ | |
| 239 | + if(_id.siblings(".w_100").attr("class").indexOf("ans_num")>-1){ //没有id,但是class中含有ans_num,则为单个题目中的选项设置框 | |
| 240 | + var _index=_id.closest("tr").index()+1; | |
| 241 | + for(i=index;i<=num;i++){ | |
| 242 | + $(".question"+_index+" ul").append('<li class="btn btn-default">'+String.fromCharCode(0x41 + i-1)+'</li>') | |
| 243 | + } | |
| 218 | 244 | } |
| 219 | 245 | } |
| 220 | 246 | } |
| 221 | 247 | //点击-执行操作 |
| 222 | - function remove_work(obj,index,num){ | |
| 223 | - var _id=obj.siblings(".w_100").attr("id") | |
| 224 | - if(_id=="que_num"){ | |
| 225 | - for(i=index;i<(index+num);i++){ | |
| 226 | - $(".subject_body_tbody tr").eq(i).remove(); | |
| 248 | + function remove_work(_id,index,num){ | |
| 249 | + | |
| 250 | + if(_id=="que_num"){ //减少题目 | |
| 251 | + for(i=index;i<=num;i++){ | |
| 252 | + $(".subject_body_tbody tr").eq(index).remove(); | |
| 253 | + } | |
| 254 | + } | |
| 255 | + if(_id=="ans_num"){ //减少选项 | |
| 256 | + for(j=1;j<=work.que_num;j++){ //轮询每道题目 | |
| 257 | + var now_length=$(".question"+j+" ul").find(".btn").length; //获取当前题目中的选项个数 | |
| 258 | + if(now_length>work.ans_num){ //如果当前选项个数大于数字框中的值,则减少选项个数到数字框中的个数 | |
| 259 | + for(i=now_length;i>=work.ans_num;i--){ | |
| 260 | + $(".question"+j+" ul").find(".btn").eq(work.ans_num).remove(); | |
| 261 | + } | |
| 262 | + } | |
| 263 | + if(now_length<work.ans_num){ //如果当前选项个数小于数字框中的值,则增加选项个数到数字框中的个数 | |
| 264 | + for(i=now_length;i<work.ans_num;i++){ | |
| 265 | + $(".question"+j+" ul").append('<li class="btn btn-default">'+String.fromCharCode(0x41 + i)+'</li>') | |
| 266 | + } | |
| 267 | + } | |
| 268 | + | |
| 269 | + } | |
| 270 | + }else{ | |
| 271 | + if(_id.siblings(".w_100").attr("class").indexOf("ans_num")>-1){ //没有id值,但是类名中含有ans_num,则判断为单个题目中的选项设置框 | |
| 272 | + var _index=_id.closest("tr").index()+1; | |
| 273 | + for(i=index;i<=num;i++){ | |
| 274 | + $(".question"+_index+" ul").find(".btn").eq(index).remove(); | |
| 275 | + } | |
| 227 | 276 | } |
| 228 | 277 | } |
| 278 | + | |
| 229 | 279 | } |
| 230 | - $(".add").on("click",function(){ | |
| 280 | + //点击+按钮 | |
| 281 | + $(document).on("click",".add",function(){ | |
| 282 | + var _that=$(this); | |
| 231 | 283 | var temp_num=0; |
| 232 | - temp_num=parseInt($(this).siblings(".w_100").val()); | |
| 284 | + //获取当前按钮旁边数字框的值 | |
| 285 | + temp_num=parseInt(_that.siblings(".w_100").val()); | |
| 233 | 286 | temp_num+=1; |
| 234 | - $(this).siblings(".w_100").val(temp_num); | |
| 235 | - | |
| 236 | - if($(this).siblings(".w_100").attr("id")){ | |
| 237 | - var _class=$(this).siblings(".w_100").attr("id"); | |
| 238 | - | |
| 287 | + //点击+号,数字框中的数字+1 | |
| 288 | + _that.siblings(".w_100").val(temp_num); | |
| 289 | + //如果数字框有id,则是标题栏上面的数字框 | |
| 290 | + if(_that.siblings(".w_100").attr("id")){ | |
| 291 | + //将下面的数字框的值设置成标题栏数字框的值 | |
| 292 | + var _class=_that.siblings(".w_100").attr("id"); | |
| 239 | 293 | $("."+_class).val(temp_num); |
| 294 | + //题目数 | |
| 295 | + if(_class=="que_num"){ | |
| 296 | + work.que_num=temp_num; | |
| 297 | + creat_work(_class,work.que_num,work.que_num); | |
| 298 | + } | |
| 299 | + //选项数 | |
| 300 | + if(_class=="ans_num"){ | |
| 301 | + work.ans_num=temp_num; | |
| 302 | + creat_work(_class,work.ans_num,work.ans_num); | |
| 303 | + } | |
| 304 | + } | |
| 305 | + else{ | |
| 306 | + if(_that.siblings(".w_100").attr("class").indexOf("ans_num")>-1){ | |
| 307 | + creat_work(_that,temp_num,temp_num); | |
| 308 | + } | |
| 240 | 309 | } |
| 241 | - creat_work($(this)); | |
| 242 | - }) | |
| 243 | - $(".redu").on("click",function(){ | |
| 244 | 310 | |
| 311 | + }) | |
| 312 | + //点击-按钮 | |
| 313 | + $(document).on("click",".redu",function(){ | |
| 314 | + var _that=$(this); | |
| 245 | 315 | var temp_num=0; |
| 246 | - temp_num=parseInt($(this).siblings(".w_100").val()); | |
| 316 | + | |
| 317 | + temp_num=parseInt(_that.siblings(".w_100").val()); | |
| 247 | 318 | temp_num-=1; |
| 248 | - if(temp_num<=1){ | |
| 249 | - temp_num=1; | |
| 319 | + if(temp_num<0){ | |
| 320 | + temp_num=0; | |
| 321 | + return; | |
| 250 | 322 | } |
| 251 | - $(this).siblings(".w_100").val(temp_num); | |
| 252 | 323 | |
| 253 | - if($(this).siblings(".w_100").attr("id")){ | |
| 324 | + _that.siblings(".w_100").val(temp_num); | |
| 325 | + | |
| 326 | + if(_that.siblings(".w_100").attr("id")){ | |
| 254 | 327 | var _class=$(this).siblings(".w_100").attr("id"); |
| 255 | - | |
| 256 | 328 | $("."+_class).val(temp_num); |
| 329 | + | |
| 330 | + if(_class=="que_num"){ | |
| 331 | + work.que_num=temp_num; | |
| 332 | + remove_work(_class,work.que_num,work.que_num); | |
| 333 | + } | |
| 334 | + if(_class=="ans_num"){ | |
| 335 | + work.ans_num=temp_num; | |
| 336 | + remove_work(_class,work.ans_num,work.ans_num); | |
| 337 | + } | |
| 338 | + }else{ | |
| 339 | + if(_that.siblings(".w_100").attr("class").indexOf("ans_num")>-1){ | |
| 340 | + remove_work(_that,temp_num,temp_num); | |
| 341 | + } | |
| 257 | 342 | } |
| 258 | - //remove_work($(this),$(".subject_body_tbody tr").length-1,1); | |
| 343 | + | |
| 259 | 344 | }) |
| 345 | + $(document).on("click",".remove",function(){ | |
| 346 | + var _that=$(this); | |
| 347 | + _that.closest("tr").remove(); | |
| 348 | + work.que_num=$(".first").length; | |
| 349 | + $("#que_num").val(work.que_num); | |
| 350 | + for(i=0;i<$(".first").length;i++){ | |
| 351 | + //console.log($(".first").closest("tr").index()); | |
| 352 | + $(".first").eq(i).text(i+1); | |
| 353 | + $(".question").eq(i).attr("class","question question"+(i+1)); | |
| 354 | + } | |
| 355 | + }); | |
| 356 | + $(document).on("click","li.btn ",function(){ | |
| 357 | + if($(this).attr("class").indexOf("on")>-1) | |
| 358 | + $(this).removeClass("on"); | |
| 359 | + else | |
| 360 | + $(this).addClass("on"); | |
| 361 | + }); | |
| 260 | 362 | $("#que_num").change(function(){ |
| 261 | - remove_work($(this),$(".subject_body_tbody tr").length-1,1); | |
| 363 | + var now_num=parseInt($("#que_num").val()); | |
| 364 | + var old_num=parseInt(work.que_num); | |
| 365 | + var _temp=now_num-old_num; | |
| 366 | + | |
| 367 | + if(_temp>0){ | |
| 368 | + creat_work($(this).attr("id"),(old_num+1),now_num); | |
| 369 | + }else{ | |
| 370 | + remove_work($(this).attr("id"),now_num,old_num); | |
| 371 | + } | |
| 372 | + | |
| 373 | + work.que_num=now_num; | |
| 374 | + | |
| 262 | 375 | }) |
| 376 | + $("#ans_num").change(function(){ | |
| 377 | + var now_num=parseInt($("#ans_num").val()); | |
| 378 | + var old_num=parseInt(work.ans_num); | |
| 379 | + var _temp=now_num-old_num; | |
| 380 | + | |
| 381 | + $(".ans_num").val(now_num); | |
| 382 | + work.ans_num=now_num; | |
| 383 | + | |
| 384 | + if(_temp>0){ | |
| 385 | + creat_work($(this).attr("id"),(old_num+1),now_num); | |
| 386 | + }else{ | |
| 387 | + remove_work($(this).attr("id"),now_num,old_num); | |
| 388 | + } | |
| 389 | + | |
| 390 | + | |
| 391 | + }); | |
| 392 | + | |
| 263 | 393 | |
| 264 | 394 | |
| 265 | 395 | function save(){ | ... | ... |