0

これは私のコードです:

var myarray=[(lots of things)];
var elem=document.getElementById('subtitle');
window.setInterval(function(){
    elem.innerHTML=myarray[Math.round((myarray.length-1)*Math.random())];
},30000);

これは問題なく動作しますが、最初の 30 秒間は何も起こりません。何かが起こるのを再実行するまで待たなければなりません。myarrayページの読み込み時にいずれかを選択させることはできますか? ありがとう

4

1 に答える 1

3

間隔を設定してもすぐに起動しないため、30 秒間待機する必要があります。関数に分割して呼び出します。ページの要素の後にスクリプトを追加すると、window.onload やドキュメントの準備について心配する必要はありません。

<div id="subtitle"></div>
<script>
    (function(){
        var myarray=[(lots of things)];
        var elem=document.getElementById('subtitle');

        function dispNum() {
            elem.innerHTML=myarray[Math.round((myarray.length-1)*Math.random())];
            window.setTimeout(dispNum,30000);
        }    
        dispNum();
    })();
</script>

再度の例: jsFiddle

于 2012-11-05T21:48:05.103 に答える