课程
/前端开发
/JavaScript
/Tab选项卡切换效果
为什么我把this.id换成i结果就不对了?
2014-11-14
源自:Tab选项卡切换效果 1-5
正在回答
因为这这个时候i的作用域已经结束了,这时i的值是它的最后一个值。
thenger
ZhiHao 提问者
因为onClick不是立即执行的,实际上当事件处理函数执行时,这里如果使用i的话会引用同一个i,而且这个i值等于for循环结束时i的值。
实际上这里起的效果跟闭包是一样的,具体效果是让每一个事件处理函数都有属于它自身的i值,而不是引用同一个i。
理解闭包和作用域就知道,i在函数中永远只能取得最后一个值。意思就是在函数里j<n.length;这个条件其实可以写成j<i;就行了。
举报
本课程详细介绍网页页面中最流行常用的tab切换效果
2 回答divs[i]替代divs[this.id]为什么不行啊?
3 回答这里this.id只是为了切换时相互对应的,完全可以简单的处理为lis[i].index=i,后面直接用this.index就可以了
5 回答alert(this.id);为什么不出来
3 回答为什么一定要用titles[i].id = i;然后用divs[this.id]去取到元素而不用divs[i]?
2 回答为什么我的divs[this.id].style.display='block';没有效果呢