老师 ,定时器问题

老师 ,定时器问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <link rel="stylesheet" type="text/css" href="css/style.css"/>
            
    </head>
    <body>
        <div class="main">
            <!--图片轮播-->
            <div class="banner" id="banner">
                <a href="">
                    <div class="banner-slide slide1 slide-active"></div>
                </a>
                <a href="">
                    <div class="banner-slide slide2"></div>
                </a>
                <a href="">
                    <div class="banner-slide slide3"></div>
                </a>
            </div>
            <!--上一张、下一张 按钮-->
            <a href="javascript:void(0)" class="button prev"></a>
            <a href="javascript:void(0)" class="button next"></a>
            <!--圆点导航-->
            <div class="dots">
                <span class="active"></span>
                <span></span>
                <span></span>
            </div>
        </div>
        <script src="js/script.js"></script>
    </body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//封装一个代替getElementById()的方法
function byId(id){
    //判断传进来的类型是否是字符串    不是的话 返回原样
    return typeof(id)==="string"?document.getElementById(id):id;
}
 
var index=0,//索引
    timer=null,//定时器
    pics=byId('banner').getElementsByTagName('div'),
    len=pics.length;
     
function slideimg(){
    var main=byId('main');
    //鼠标移入时 清除定时器
    //鼠标移出时 定时器生效
    main.onmouseover=function(){
        //清除定时器
    }
    main.onmouseout=function(){
        //定时器生效
        timer=setInterval(function(){
            index++;
            if(index>=len){
                index=0;
            }
            console.log(index);
        },3000);
    }
}
slideimg();

会报Cannot set property 'onmouseover' of null


另外 老师 为什么js不能写在header里?我看好像会报Uncaught TypeError: Cannot read property 'getElementsByTagName' of null 一个错?

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

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

1回答
提问者 将自己发配于人海 2018-05-11 15:22:01

老师 第一个问题 解决了 main没有加id

第二个问题呢?

  • 建议同学清晰描述你的问题,目前存在的还有哪些问题?建议同学重新开一个问答,清晰描述你的问题,并将全部代码贴出来,方便帮助你解答~
    2018-05-11 16:01:11
  • 老师 就是 如果把js文件写在body中 用getElementsByTagName 不会报错 而写在 header中 会报错 html:33
    2018-05-11 16:27:17
  • 嗯,是这样的,html页面是有加载顺序的,一般都是自上向下加载,如果将js写到header里,那么还没有加载到body部分的标签就去获取了,所以会出现错误~~
    2018-05-11 17:19:47
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10204    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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