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