关于清除定时器的问题,setTimeout

如下代码,用setInterval自然是没问题,因为使用都是同一个timer,请问setTimeout怎么解决这个问题?

        function scrollbars(){

            index++;

            if(index <= max){

                target = index * singleHeight;

            }else{

                index = 0;

                target = index * singleHeight;

            }


            $el.animate({'top': target}, 1000, function(){

                timer = setTimeout(scrollbars, 2000);

            });

        }


        timer = setTimeout(scrollbars, 2000);


        $('#container').on('mouseenter', function(){

            //    这里鼠标移入,清除定时器,可能在清除之前,上面已经生成新的定时器了,所以只是清除了之前的定时器,这里可能无法起到停止的作用

            clearTimeout(timer);

        });


明月笑刀无情
浏览 2153回答 1
1回答

慕的地6264312

申请一个指示作用的变量,没有为0,有为1,然后在settime里加判断,其实这样做的话,你连清除也不用做了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript