点击小圆点不起切换图片的作用,我取到的index值是个nan的string,怎么更改

点击小圆点不起切换图片的作用,我取到的index值是个nan的string,怎么更改

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<title></title>
<!-- <link rel="stylesheet" href="css/作业.css"> -->
</head>
<style>
*{
margin: 0;
padding: 0;
}
.main{
width: 900px;
height: 400px;
margin: 0 auto;
position: relative;
/* top: 50%;
    left: 50%;
    margin-top: -200px;
    margin-left: -450px; */
/* text-align: center; */
}
h3{
text-align: center;
line-height: 45px;
}
.slider{
width: 900px;
height: 345px;
position: relative;
}
.img-block{
width: 900px;
height: 345px;
display: none;
float: left;
}
.img-active{
display: block;
}
.prev{
height: 80px;
width: 40px;
background: url(../img/pre2.png) no-repeat center center;
position: absolute;
top: 50%;
left: 0;
margin-top: -40px;
}
.next{
height: 80px;
width: 40px;
background: url(../img/arrow.png)  no-repeat center center ;
position: absolute;
top: 50%;
right: 0;
margin-top: -40px;
}
a:hover{
background-color: #333;
opacity: 0.8;
filter:alpha(opacity=80);
}
.dots {
    position: absolute;
    bottom: 24px;
    right: 0;
    text-align: right;
    padding-right: 24px;
    line-height: 12px;
}

.dots span {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin-left: 8px;
    background-color: rgba(7, 17, 27, 0.4);
    cursor: pointer;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.8) inset;
}
.dots span.active{
    box-shadow: 0 0 0 2px rgba(7, 17, 27, 0.4) inset;
    background-color: #ffffff;
}

</style>
<body>
<div class="main">
<h3>jQuery</h3>
<div class="slider">
<div class="img" id="img">
<a href="#">
<img src="img/1.jpg" alt="" class='img-block img-active'>
</a>
<a href="#">
<img src="img/2.jpg" alt="" class='img-block '>
</a>
<a href="#">
<img src="img/3.jpg" alt="" class='img-block'>
</a>
<a href="#">
<img src="img/4.jpg" alt="" class='img-block'>
</a>
<a href="#">
<img src="img/5.jpg" alt="" class='img-block'>
</a>
</div>
</div>
<a href="javascript:void(0)" class="button prev" id="prev"></a>
<a href="javascript:void(0)" class="button next" id="next"></a>
<div class="dots" id="dots">
<span class="active"></span>
<span>
</span>
<span></span>
<span></span>
<span></span>
</div>
</div>
<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
<script src="js/作业.js">
</script>
</body>

</html>
$(function(){
var img = $('.img a img'),
span = $('.dots span'),
main = $('.main'),
k = 0,
len = img.length,
timer = null,
btn = $('button'),
prev = $('.prev'),
next = $('.next');
//切换图片函数
function changeimg(){
img.removeClass('img-active');
span.removeClass('active');
img.eq(k).addClass('img-active')
span.eq(k).addClass('active')
}
//当鼠标移开时定时切换
main.mouseout(function(){
timer = setInterval(function(){
k++
if(k>=len){
k = 0
}
changeimg()
}, 1000)
})
main.mouseout()
//当鼠标覆盖图片是解除定时。。
//这边如果我用hover的话,会出错误,不知道为什么
main.mouseover(function(){
if(timer)
clearInterval(timer)
})
//点击按钮奇幻图片,上一张
prev.on('click',function(){
k--
if (k < 0) {
k = len-1
}
changeimg()
})
//点击按钮奇幻图片,下一张
next.on('click', function () {
k++
if (k >= len) {
k = 0
}
changeimg()
})
//点击圆点切换图片
for (var i = 0; i < len; i++) {
span.eq(i).attr('id',i)
console.log(typeof(span.eq(i).attr('id')))
span.eq(i).on('click',function () {
k = Number(span.eq(i).attr('id'));
console.log(k)
changeimg();
})
}
})

点击圆点切换图片的代码就在最底部那边,麻烦老师帮我看一下,谢谢

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕星星 2018-07-15 12:00:23

你使用span.eq(i)的时候,i的值是5,所以是没有内容的,使用$(this)代表的就是当前的点击选项。自己可以打印测试下。

好帮手慕星星 2018-07-15 09:01:20

在获取id属性值的时候,获取当前的使用$(this)就可以了。

http://img1.sycdn.imooc.com//climg/5b4a9ca00001fee406290238.jpg

祝学习愉快~~

  • 提问者 慕无忌6236884 #1
    老师,span.eq(i)不跟$(this)等价吗?
    2018-07-15 10:41:19
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师