Feyily 2016-09-04 06:02 采纳率: 0%
浏览 1391

JavaScript中定时器为什么就运行了一遍

function getStyle(obj, name)
{
if(obj.currentStyle)
{
return obj.currentStyle[name];
}
else
{
return getComputedStyle(obj, false)[name];
}
}

    function startMove(obj, attr)
    {
        clearInterval(obj.timer);
        obj.timer=setInterval(function (){
            var cur=parseInt(getStyle(obj, attr));
            var speed=(iTarget-cur)/8;
            speed=speed>0?Math.ceil(speed):Math.floor(speed);
            if(cur==iTarget)
            {
                if(iTarget>-6000)
                {
                    iTarget-=1000;
                }
                else
                {
                    iTarget=0;
                }
                clearInterval(obj.timer);
            }
            else
            {
                obj.style[attr]=cur+speed+'px';
            }
        }, 30);

    }

setInterval(startMove(oBanner_ul,'left'),5000);


这个定时器为什只运行了一次,之后就再不会运行了?是不是js中定时器不能够嵌套使用?

展开全部

  • 写回答

2条回答 默认 最新

  • devmiao 2016-09-04 06:25
    关注
    评论
  • 斯洛文尼亚旅游 2016-09-04 17:26
    关注

    setInterval(startMove(oBanner_ul,'left'),5000);
    ==>

    setInterval(function(){startMove(oBanner_ul,'left')},5000);

    你原来代码是执行startMove后将返回值作为计时器要执行的函数,当然只能执行一次

    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部