setinterval和增量值

时间:2015-03-06 08:49:38

标签: javascript scope setinterval

我尝试使用多个Div名称" nouvelleoffre_1,nouvelleoffre_2,nouvelleoffre_3 ...

进行小型幻灯片放映

为此我创建2函数defilementNouvellesOffres()和DefilementNouvellesOffresTimer

第一个是在html体的onload()事件中调用。第二个是使用设置间隔计时器调用。

一切都完美无缺......但var 计时器永远不会增加。我认为这是一个基本的范围问题。我尝试了几个方法来解决它(返回,在设置间隔中定时器++。

感谢您帮助解决问题。

这里是代码:

body.onload="defilementNouvellesOffres();"
function defilementNouvellesOffres(){
    div1 = "nouvelleoffre_";
    timer = 1;
    timerdefilement = setInterval(defilementNouvellesOffresTimer, 2000, div1, this.timer);
}

function defilementNouvellesOffresTimer(div1 , timer){
   //alert (timer);
   Effect.Fade(div1 + timer, { delay : 2 });
   timer++;
   //alert (timer);
   Effect.Appear(div1 + timer,  { queue: 'end' });  
}

2 个答案:

答案 0 :(得分:1)

您有两个名为timer的变量。

一个是全局的,并在timer = 1时隐式声明。

另一个是defilementNouvellesOffresTimer函数的本地函数,并在参数中声明。

将全局值的值复制到本地值,然后增加本地值,同时保持全局不变。

答案 1 :(得分:0)

这完全符合您的要求:

<body onload="">

<script type="text/javascript">
function defilementNouvellesOffres(){

    var SELF = {}
        SELF.div1 = "nouvelleoffre_";
        SELF.timer = 1;

    this.defilementNouvellesOffresTimer = function(){

        Effect.Fade( SELF.div1 + SELF.timer, { delay : 2 });
        SELF.timer++;
        Effect.Appear(SELF.div1 + SELF.timer, { queue: 'end' });
    }

    this.startInterval = function(){
        SELF.timerdefilement = setInterval("my_timer_function.defilementNouvellesOffresTimer();", 2000);
    }
    this.clearInterval = function(){
        clearInterval(SELF.timerdefilement);
    }
}
var my_timer_function = new defilementNouvellesOffres();
    my_timer_function.startInterval();
</script>