设置间隔和增量值

setinterval and incremential value

我尝试用几个 Div 名称“nouvelleoffre_1, nouvelleoffre_2, nouvelleoffre_3 ...

制作一个小幻灯片

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

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

一切正常...但是 var timer 永远不会增加。我认为这是一个基本的范围问题。我尝试了几种方法来解决它(return,设置间隔中的计时器++。

感谢您的帮助解决。

这里是代码:

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' });  
}

您有两个名为 timer 的变量。

一个是全局的,当你 timer = 1.

时隐式声明

另一个是 defilementNouvellesOffresTimer 函数的局部变量,在参数中声明。

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

这正是您想要的:

<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>