为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的for循环内的judge函数只执行一次,求各位大神帮忙解读一下子,谢谢啦

为什么我的for循环内的judge函数只执行一次,求各位大神帮忙解读一下子,谢谢啦

我背后有个胖子 2017-01-10 22:47:45
这是js代码:(function(){    var $=function(id){return document.getElementById(id);} //添加浏览器兼容事件 function addEvent(el,type,handler){  if(el.addEventListener){      el.addEventListener(type,handler,false);     }else if(el.attachEvent){      el.attachEvent("on"+type,handler);     }else{        el["on"+type]=handler;  } }  //构造函数+原型  var SheetBlock=function(btn,block,txt,sheet){      this.btn=$("btn");      this.block=$("block");      this.txt=$("txt");      this.sheet=$("sheet");      this.num=$("num");      this.divs=0;      this.tdone=$("sheet").childNodes.item(1).childNodes.item(2).childNodes.item(3);      this.commandAll=[];      var self=this;      this.dir=0;//除以4余数为-3,1的时候向右,余数为-2,2的时候向下, 余数为3 ,-1的时候向左,余数为0向上      //块的位置初始化      this.block.style.left=this.tdone.offsetLeft+this.sheet.offsetLeft+"px";      this.block.style.top=this.tdone.offsetTop+this.sheet.offsetTop+"px";    addEvent(this.btn,"click",function(){         //调用字符串处理函数         var str=self.txt.value.trim();         var commandArr=str.split(/\n/);         for(var i=0;i<commandArr.length;i++){            //console.log(commandArr[i]);//弹出数组["TUN RIG", "GO"]            self.judge(commandArr[i]);//但只执行了一个TUN RIG ,不执行GO,这是为什么?????         }   });    //处理输入域      addEvent(this.txt,"keyup",function(e){      e=e||window.event;      if(e.keyCode==13){        //调用左侧数目函数        self.createNum();      }    });  }   SheetBlock.prototype={     createNum:function(){        this.divs++;        var div=document.createElement("div");        div.innerHTML=this.divs;        div.setAttribute("class","normal");        this.num.appendChild(div);     },     judge:function(value){        console.log(value);      if(value=="GO"){    switch(this.dir%4){              case -3:              case 1:                this.RIG();              break;              case 0:                this.TOP();              break;              case -2:              case 2:                 this.BOT();              break;              case 3:              case -1:               this.LEF();              break;    }  }else if(value=="TUN LEF"){        this.dir--;        this.block.style.transform="rotate("+this.dir*90+"deg)";  }else if(value=="TUN RIG"){        this.dir++;   this.block.style.transform="rotate("+this.dir*90+"deg)";  }else if(value=="TUN BAC"){   this.dir=this.dir+2;   this.block.style.transform="rotate("+this.dir*90+"deg)";  }else if(value=="TRA LEF"){        this.LEF();    }else if(value=="TRA TOP"){        this.TOP();    }else if(value=="TRA RIG"){        this.RIG();    }else if(value=="TRA BOT"){        this.BOT();    }else if(value=="MOV LEF"){        this.block.style.transform = "rotate(-90deg)";        this.LEF();        this.dir=7;    }else if(value=="MOV TOP"){        this.block.style.transform = "rotate(0deg)";        this.TOP();        this.dir=4;    }else if(value=="MOV RIG"){        this.block.style.transform = "rotate(90deg)";        this.RIG();        this.dir=5;    }else if(value=="MOV BOT"){        this.block.style.transform = "rotate(180deg)";        this.BOT();        this.dir=6;    }else{  alert("请输入正确指令");  }  return this.dir;    },    RIG:function(){      if(this.block.offsetLeft<857){          this.block.style.left=this.block.offsetLeft+42+"px";      }    },    TOP:function(){      if(this.block.offsetTop>59){          this.block.style.top=this.block.offsetTop-42+"px";      }    },    LEF:function(){        if(this.block.offsetLeft>480){          this.block.style.left=this.block.offsetLeft-42+"px";      }    },   BOT:function(){    if(this.block.offsetTop<400){     this.block.style.top=this.block.offsetTop+42+"px";     }    },  }var sheet=new SheetBlock();})();这是html代码:<!doctype html><html><head><meta charset="UTF-8"><title>task33</title><link rel="stylesheet" href="task.css" type="text/css"></head><body>     <table id="sheet" cellpadding="0" cellspacing="0" border="0"   width=“440px”><tr>         <td></td>         <td>1</td>    <td>2</td>    <td>3</td>    <td>4</td>    <td>5</td>    <td>6</td>    <td>7</td>    <td>8</td>    <td>9</td>    <td>10</td>     </tr>     <tr>         <td>1</td>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>    <td></td>     </tr>     <tr>         <td>2</td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>     </tr>     <tr>         <td>3</td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>     </tr>     <tr>          <td>4</td>        <td></td>        <td></td>        <td></td>        <td></td>        <td></td>        <td></td>        <td></td>        <td></td>        <td></td>        <td></td>     </tr>     <tr>          <td>5</td>        <td></td>        <td></td>        <td></td>        <td></td>        <td></td>        <td></td>        <td></td>        <td></td>        <td></td>        <td></td>     </tr>     <tr>         <td>6</td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>     </tr>     <tr>         <td>7</td>         <td></td>         <td></td>         <td></td>         <td></td>         <td></td>         <td></td>         <td></td>         <td></td>         <td></td>         <td></td>     </tr>     <tr>         <td>8</td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>       <td></td>     </tr>     <tr>        <td>9</td>      <td></td>      <td></td>      <td></td>      <td></td>      <td></td>      <td></td>      <td></td>      <td></td>      <td></td>      <td></td>     </tr>     <tr>        <td>10</td>      <td></td>      <td></td>      <td></td>      <td></td>      <td></td>      <td></td>      <td></td>      <td></td>      <td></td>      <td></td>     </tr>     </table>   <div id="block">       <div id="block_front"></div>       <div id="block_back"></div>  </div>  <div id="inp">    <button id="btn">执行</button>    <button>Refresh</button>    <br/>    <div id="inputbox">    <div id="num">    </div>    <textarea rows="15" cols="49" id="txt" >    </textarea>    </div>  </div>  <script src="task.js" type="text/javascript"></script></body></html>
查看完整描述

1 回答

?
大写的王

TA贡献122条经验 获得超162个赞


代码太乱了

查看完整回答
反对 回复 2017-01-17
  • 1 回答
  • 0 关注
  • 2356 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信