Проблема, с которой вы столкнулись, заключается в том, что вы должны предоставить функцию без параметров, а не вызов функции для setTimeout.Кроме того, я бы сделал это немного по-другому и использовал бы setInterval
вместо setTimeout
, поскольку это лучше отражает ваши намерения в коде.Вот как я бы это сделал:
<script language="javascript">
$(function() {
setInterval(downloadHandler, 2000);
});
function downloadHandler() {
// I'm not sure where the id is coming from you will probably need to put a
// class on your div's so that you can select them.
$(".MyDivClass").each(function() {
var id = $(this).attr("id");
downloadProgress(id);
});
}
function downloadProgress(id) {
$("#" + id + "").load(
"index.php?_controller=download&_action=getDownloadProgressAjax",
{ downloadId: id }
);
</script>
и затем на вашем div:
<?php
foreach ($downloads as $dl) {
?>
<div id="<?php echo $dl["download_id"]; ?>" class="MyDivClass"/>
<?php
}
?>
Надеюсь, это поможет.