初学javascript,请各位高手帮我解答下这段代码的含义:
for(vari=0,len=oLis.length;i<len;i++){oLis[i].index=i;//位置1alert(oLis[i].index);oLis[...
for(var i=0,len=oLis.length;i<len;i++){
oLis[i].index = i;
//位置1 alert(oLis[i].index);
oLis[i].onmouseover = function(){
for(var n=0;n<len;n++){
oLis[n].className = "";
oDivs[n].className = "hide";
}
//位置2 alert(oLis[i].index);
this.className = "on";
oDivs[this.index].className = "";
}
}
问题如下:
1.for循环当中,当没有鼠标事件触发时,程序是否阻塞在function函数之前?
2.在位置1处调用alert函数可以执行,但是为什么连续输出3次?而位置2一次都不输出?
3.index指的是什么?
4.如果愿意的话,能不能把这段代码的执行过程叙述一下,不甚感激!!! 展开
oLis[i].index = i;
//位置1 alert(oLis[i].index);
oLis[i].onmouseover = function(){
for(var n=0;n<len;n++){
oLis[n].className = "";
oDivs[n].className = "hide";
}
//位置2 alert(oLis[i].index);
this.className = "on";
oDivs[this.index].className = "";
}
}
问题如下:
1.for循环当中,当没有鼠标事件触发时,程序是否阻塞在function函数之前?
2.在位置1处调用alert函数可以执行,但是为什么连续输出3次?而位置2一次都不输出?
3.index指的是什么?
4.如果愿意的话,能不能把这段代码的执行过程叙述一下,不甚感激!!! 展开
展开全部
没看懂
len为3位置1肯定连续执行三次,而位置2在onmouseover里,你鼠标不over自然不会触发。
因为for循环里有个mouseover事件,你在里面输出alert(i)会发现输出的值都是一样的,但是我们并不想要这种结果,所以在外面给oLis里的成员里都加上一个index属性表示它在数组里的位置。index你可以换成任何一个字母,不一定就非得是index。
for(var i=0,len=oLis.length;i<len;i++){ //遍历出oLis
oLis[i].index = i; //给oLis里面的每一个成员加一个属性
//位置1 alert(oLis[i].index); //输出结果 0 1 2
oLis[i].onmouseover = function(){ //当鼠标滑过时
for(var n=0;n<len;n++){ //再遍历下,目的是为了初始化
oLis[n].className = ""; //清除oLis的所有的的classname
oDivs[n].className = "hide"; //设置所有的滑动门的内容的classname=hide,应该是隐藏所有的内容
}
//位置2 alert(oLis[i].index); //你鼠标不over自然不显示
this.className = "on"; //设置当前鼠标滑过的classname=“on”
oDivs[this.index].className = ""; //注意这个this.index,如果写成i的话是不对的,你可以自己试一下,意思是相对应鼠标滑过的导航的内容清除calss设置为显示
}
}
展开全部
位置1是循环外的alert
位置2是mouseover 触发后才会执行的。
所以执行顺序是这样的:
alert,绑定一个鼠标事件(几乎不耗时间),
alert,绑定一个鼠标事件(几乎不耗时间),
alert,绑定一个鼠标事件(几乎不耗时间),
在鼠标over的时候回去执行响应的事件处理函数
位置2是mouseover 触发后才会执行的。
所以执行顺序是这样的:
alert,绑定一个鼠标事件(几乎不耗时间),
alert,绑定一个鼠标事件(几乎不耗时间),
alert,绑定一个鼠标事件(几乎不耗时间),
在鼠标over的时候回去执行响应的事件处理函数
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的 js当运行的时候到了一步无法通过的话 下面的就不执行了 至于为什么1输出3次 2不输出 是英文 你3次都错在里面for循环所以下面运行不了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询