2012-05-30 102 views
1

我要在固定時間間隔一個div加載圖像,比如每隔一兩秒鐘加載圖像每秒鐘

我不喜歡這個

$(document).ready(function() { 
    setTimeout('LoadImages()',100); 
}); 
function LoadImages() 
{ 
    $('#Images').load('get_image.htm'); // get_image.htm displays image 
} 
</script> 
<body> 
<div id="Images"><div> 

一些愚蠢的嘗試,我知道它的都錯了,但需要做些什麼才能做到這一點?

+0

你檢查W3Schools的或任何其他在線教程? –

+0

@GregB http://w3fools.com –

+0

如果人們在每次有人提到w3schools時都停止發佈w3fools,那麼這將非常棒,除非有人真正鏈接到w3schools上的問題文章。 –

回答

1
$(document).ready(function() { 

    function LoadImages() { 

    setTimeout(function() { 
     $('#Images').load('get_image.htm'); // get_image.htm displays image 
     LoadImages(); // recursive call to LoadImages 
    }, 1000) 

    } 
}); 

如果你想完成圖像加載後調用LoadImages()然後

$(document).ready(function() { 

    function LoadImages() { 

    setTimeout(function() { 
     $('#Images').load('get_image.htm', function() { 

      LoadImages(); // recursive call to LoadImages 

     }); // get_image.htm displays image 

    }, 1000) 

    } 
}); 
1

這將做到這一點

$(document).ready(function() { 
    setInterval(function() { 
    $('#Images').load('get_image.htm'); // get_image.htm displays image 
    },100); 
}); 

使用setInterval()你可以(在這種情況下100)指定的毫秒數後重復功能

1

避免使用的setTimeout /間隔內弦,只是嘗試這

$(document).ready(function() { 
    var div = $('#Images'); 
    setInterval(function() { 
    div.load('get_image.htm'); // get_image.htm displays image 
    }, 1000); 
}); 

如果你需要每一秒一個電話,然後延遲必須是1000(而不是100,否則你的服務器WIL我接受600次/分鐘而不是60次)。

還可以創建一個外部範圍的參考節點,所以你不會在每個函數調用重新評估$('#Images')

2

你需要,而不是setIntervalsetTimeout

$(function() { 
var i = window.setInterval(function(){ 
    $('#Images').load('get_image.htm'); 
},1000); 
}); 

您可以停止隨時重裝與

clearInterval(i); 
0

如果您需要每秒鐘,然後使用setInterval和1000ms是1秒。

$(document).ready(function() { 
    setInterval('LoadImages',1000); 
}); 
0

setTimeout('LoadImages()',100)應該像setTimeout(LoadImages,1000);爲1秒爲setTimeout取間隔PARAM在millisecond。要每隔一秒執行一次,您應該使用setInterval,如setInterval(LoadImages,1000)setTiemout只會運行一次。

as setTimeout需要函數參考,其中使用'LoadImages()'將觸發eval並立即執行函數並返回null。

您還應該使用append,而不是一次又一次地將圖像加載到該div中,這將替換所有先前的圖像。我不確定你是否有意要這樣做。

$(function() { 
var i = window.setInterval(function(){ 
    $('#Images').load('get_image.htm'); 
},1000); 
}); 
function LoadImages() 
{ 
$.get('get_image.htm',function(data){ 
    $('#Images').append(data); 
}); 
}