关于this的问题
function byId(id){
return typeof(id) ==="string"?document.getElementById(id):id;
}
var banner=byId("banner");
var timer=null;
var index=0;
var pics=banner.getElementsByTagName("div");
var dots=byId("dots").getElementsByTagName("span");
var len=pics.length;
function slideImg(){
// 鼠标停留
var main=byId("main");
main.onmouseover=function(){
if(timer){
clearInterval(timer);
}
}
// 鼠标离开
main.onmouseout=function(){
timer=setInterval(function(){
index++;
if(index>=len){
index=0;
}
changeImg();
},1000)
}
main.onmouseout();
//下一章图片按钮
next.onclick=function(){
index++;
if(index>=len){
index=0;
}
changeImg();
}//上一张图片
prev.onclick=function(){
index--;
if(index<0){
index=2;
}
changeImg();
}//原点按钮
for(var dot=0;dot<len;dot++){
dots[dot].id=dot;
dots[dot].onclick=function(){
alert(dots[dot].id);
}
}
}
function changeImg(){
for(var i=0;i<len;i++){
pics[i].style.display="none";
if(i==index){
pics[i].style.display="block";
}
}
}
slideImg();
为什么用this.id才能打印出对应的id,难道this指的当前对象不是dots[dot]吗,表示疑问
6
收起
正在回答
1回答
同学你好,this是指dots[dot]。关于this的问题,在之前同学的提问中,已经给同学解释过,如:http://class.imooc.com/course/qadetail/133424,在function中使用function外定义的变量时,不使用this调用,则使用的是这个变量最终的值。同学可以再去看一下之前的回答。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
2. 从网页搭建入门JavaWeb
- 参与学习 人
- 提交作业 676 份
- 解答问题 9666 个
本阶段将从前端网页搭建入手,到Java Web基础,前后端结合助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星