放在外面我测试了一下是可以的,逻辑上来说,变成了false之后就变不回true了,然后得等mouseout来清楚,但是如果放在for in 上面的话,只要其中一个参数到达了目标值,flag就是false然后就clear定时器了,不是就无效了么
放在外面我测试了一下是可以的,逻辑上来说,变成了false之后就变不回true了,然后得等mouseout来清楚,但是如果放在for in 上面的话,只要其中一个参数到达了目标值,flag就是false然后就clear定时器了,不是就无效了么
放在外面我测试了一下是可以的,逻辑上来说,变成了false之后就变不回true了,然后得等mouseout来清楚,但是如果放在for in 上面的话,只要其中一个参数到达了目标值,flag就是false然后就clear定时器了,不是就无效了么
2016-05-17
flag放在函数外面也行,但是每次执行都必须初始化 flag 为 true,其次,flag 的 初始化 必须放在 for in 循环上面
(不管你在哪定义flag)。 因为是for in 循环,参数达到目标之后,确实不执行你说的 icur != json[changeType] ;
但是,其余的for 循环时,会对其他的元素进行这个判断 if (attr !== json[attr] ) ;如果不等,flag 就变成了false;
你可能看错了一个地方,if(flag === true){.....} 是放在整个for 循环外面的,并没有在for 循环里面。所以在循环
的 n 次过程中,只要有一次 不等于目标值,flag 就成了false, 循环结束之后,才判断 if(flag === true){.....},如果都到了目标,就是没有执行 flag = false 的if语句 ,flag = true ,才会终止计数器
举报