我試圖通過更改img標記的src逐一隨機顯示不同的圖像。setTimeout創建一個無限循環
<img src="dravid-young.jpg" width="350" height="460">
<script type="text/javascript">
var a= new Array ("dravid-childhood.jpg", "dravid-young.jpg", "Jellyfish.jpg", "Tulips.jpg" , "Lighthouse.jpg" , "Penguins.jpg");
$(document).ready(function(){
var rand = a[Math.floor(Math.random()*a.length)];
changeimage(a[Math.floor(Math.random()*a.length)]);
});
function changeimage(imag)
{
$("img").attr("src",imag);
setTimeout(changeimage(a[Math.floor(Math.random()*a.length)]), 5000);
}
</script>
但它看起來像創建了一個無限循環,頁面不斷加載!
...因爲你打電話'setTimeout'每次都有'changeimage' –
你的'changeimage'函數無條件地調用'c hangeimage' - 你期望什麼?你的代碼實際上並沒有調用'setTimeout'直到'changeimage'返回 - 它永遠不會做。 –
更不用說,當你只需要一次的時候,你想在你的代碼中選擇一個隨機圖像索引3次 – Basic