1-13问题
来源:1-13 作业题
慕丝6937110
2019-01-09 01:06:26
1:点击左右按钮时发生了什么错误吗,看页面效果我好像并没有发现有什么不对的地方,什么叫默认跳转行为,不理解
2:
var numberOfPics=$('.pic').length; //console.log(numberOfPics); var index=0; var picAuto; //封装一个函数,用于切换图片 function mySlider(){ index++; if(index>=numberOfPics){ index=0; } $('.pic').eq(index).addClass('active'); $('.pic').eq(index).siblings().removeClass('active'); $('span').eq(index).addClass('dots-active'); $('span').eq(index).siblings().removeClass('dots-active'); } //鼠标滑过后,开始自动轮播 $('.main').mouseout(function(){ picAuto=setInterval(function(){ mySlider(); },2000) }) //调用onmouseout这个方法,使得自动执行onmouseout事件,使页面刚加载出来就自动轮播 $('.main').mouseout(); //当鼠标放在图片或"上下按钮"以及圆点上面时,清除定时器,使自动轮播停止 $('.main').mouseover(function(){ clearInterval(picAuto); }) //点击往下翻的按键 $('.next').click(function(){ mySlider(); }) //点击往上翻的按钮,因为index为递减,所以这边单独写一个函数,不调用slider $('.previous').click(function(){ index--; if(index<0){ index=4; } $('.pic').eq(index).addClass('active'); $('.pic').eq(index).siblings().removeClass('active'); $('span').eq(index).addClass('dots-active'); $('span').eq(index).siblings().removeClass('dots-active'); }) //点击圆点切换图片 $('span').click(function(event){ //获取每个圆点的索引值 var dotIndex=$(event.target).index(); //用圆点的索引值来控制要选择的图片 $('.pic').eq(dotIndex).addClass('active'); $('.pic').eq(dotIndex).siblings().removeClass('active') $('span').eq(dotIndex).addClass('dots-active'); $('span').eq(dotIndex).siblings().removeClass('dots-active'); })
把var dotIndex=$(event.target).index();这里的变量名从dotIndex改为index有什么区别吗???我在一开始就定义过一个叫index的变量了,用他来控制轮播的。我确实发现了点击圆点时的跳转错误,但这个错误原理是什么呢,为什么会出现这样的错误,不懂啊
1回答
好帮手慕夭夭
2019-01-09
你好同学 , 问题解答如下 :
作业中左右按钮逻辑并没有错误 , 批复老师是给同学一个建议 . 因为a标签有默认的跳转行为 . 跳转行为同学可以按照如下代码 ,自己试一试就能够理解了 :
当点击a标签时 , 页面会跳转到顶部 ,这就是一个跳转行为 . 这是a标签默认的一个特点 . 因为你的作业本身就显示在最顶部了 ,所以点击的时候跳转的效果看的并不是很明显 . 但是建议同学参考批复文档 , 设置一个阻止默认行为更好 .
因为你在点击事件中把点击的当前索引赋值给一个新的变量dotIndex ,此时index还是原来的index .
例如页面打开时 ,自动进行轮播 ,调用mySlider . 图片自动轮播到第二张图片 , 此时index值为1 . 这个时候点击第一个圆点 , i索引应该变为0 ,但是此时事件中把索引0赋值给了dotIndex ,index还是之前的1. 所以鼠标移出后 , 图片又开始自动轮播,调用mySlider . 仍然会按照index=1的索引顺序去执行轮播 .
所以你应该让整个代码逻辑中的index同步 , 不管是点击圆点还是点击按钮或者自动轮播 ,它的索引都为index
祝学习愉快 ,望采纳 .