亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

提問:var flag=true放到timer外,回調函數不能執行。放到timer內,運動達不到目標值。

如題,

當flag定義在timer內部的時候,設定是{width:400,height:200},實際上的效果卻是比這個值小,并且差值還不是固定的!此時回調函數是可以執行的!

當flag定義在timer外部,目標值可以達到,回調函數不能執行!

求大神解答!


正在回答

2 回答

老師寫的這個代碼并沒有真正地停止過定時器,也就是說就算運動停止了,也只是因為speed=0了,沒有了運動的速度兒所以停止了運動,并不是因為調用了clearInterval(timer)。如果clearInterval(timer)被調用了,那么fn()也會被調用。按照老師這個

if(icur!=json[attr] ){

flag=false;

}

的寫法,應該把flag定義在timer內,for循環外,這樣才會通過clearInterval(timer)停止定時器,并且調用fn()。

如果要把flagflag定義在timer外面,那么這個上面那個if語句應該增加一個else語句

if(icur!=json[attr] ){//把flag放在for循環里循環,如果元素的當前值不等于目標值,flag=false

flag=false;

}else{//如果元素的當前值等于目標值,flag=true

flag=true

}


0 回復 有任何疑惑可以回復我~

好吧。。。我知道了,要把flag定義在timer內,for循環外。。。

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

提問:var flag=true放到timer外,回調函數不能執行。放到timer內,運動達不到目標值。

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號