猿问

我一个一个for循环不能很好的执行?

    for (var i = 0; i < nav.length; i++) {

       nav[i].onclick = function () {

           for (var j = 2; j < Content.length; j++) {

               if ((i + 2) ==j) {

                   //startMove(Content[j], { opacity: 100, left: 28, });

                   alert('nihao');

               }

               else {

                   startMove(Content[j], { opacity: 0 });

               }

               }

           }

       }

为什么这个循环中    if ((i + 2) ==j)这个条件下的函数完全不执行?

weibo_张张张张张大仙呀_03578611
浏览 1895回答 6
6回答

地狱快车_666

你的i有问题,i你定义在function外面。你的i并不能传到下面的function里。典型的闭包问题。建议你看下作用域。

雪舞蔷薇

    nav[i].onclick 你的js代码中有个单机事件  单机后进入下一个for循环抛出提示,我认为单击时并不能保证 i 值继续向下传建议把  单击事件  写在第二个  for 循环里。

LEO_117

首先确认下是if((i+2)==j)里面不执行 还是else里面也不执行,也就是确认你的for循环判断语句到底进来了没,如果进来了,没执行if而执行了else,那你对i和j分别进行打印看看值

qyy2499760117_叶子

你调试一下,每执行一次,观察i/j的变化。
随时随地看视频慕课网APP
我要回答