2016-11-29 5 views
1

仕事これは、私はシンプルなスライダーを作りたいが、私のスクリプトのみ2回行うのsetTimeout私のコードのsetTimeout()が唯一の2回

<script type="text/javascript"> 
window.onload=change; 
var i=0 ; 
function change() 
{ 
    var images = new Array('1','2','3','4','5','6'); 
    document.getElementById('baner').src = obrazy[i]; 
    i++ 
    if (i == images.length) 
    { 
     i=0; 
    } 
} 
setTimeout(change,1000); 
</script> 

です。はい、私はid banerと要素があります。私は何が間違っているのかわかりません。

+1

どのように?魔法です! –

+1

実際は1回だけ動作します。 window.onloadからの2番目の呼び出し、またはその逆です。代わりにsetIntervalを使用してください –

+2

'setTimeout(change、1000);を' change'の最後に移動してください – hindmost

答えて

1

setInterval()関数を呼び出したり、指定した間隔(ミリ秒単位)で式を評価するメソッドを使用する必要があります。

<script type="text/javascript"> 
window.onload=change; 
var i=0 ; 
function change() 
{ 
    var images = new Array('1','2','3','4','5','6'); 
    document.getElementById('baner').src = obrazy[i]; 
    i++ 
    if (i == images.length) 
    { 
     i=0; 
    } 
} 
setInterval(change,1000); 
</script> 

setTimeout()方法は、指定されたミリ秒数後に関数を呼び出して停止します。

4

changeは、window.onloadのハンドラで1回、1秒のタイムアウト後に1回だけ呼び出しています。

あなたはsetIntervalの代わりsetTimeoutを探していることがあります。

`たsetInterval()`について
window.onload = function() { 
    var i=0 ; 
    function change() { 
     var images = new Array('1','2','3','4','5','6'); 
     document.getElementById('baner').src = obrazy[i]; 
     i++; 
     if (i == images.length) { 
      i=0; 
     } 
    } 
    setInterval(change,1000); 
    change(); 
} 
+0

良い答え、+1私はパーティーに遅かった: – GibboK

+1

または彼らは正しい位置にsetTimeoutを置くと... :) – epascarello