У меня есть следующая функция. Эта функция вызывается с помощью setTimeout по форме submit.Повторное использование переменной внутри jquery.ajax
function get_progress(fileID, filename) {
$.ajax({
url: filename,
type: 'HEAD',
success: function() {
$.ajax({
type: 'POST',
url: 'read_file.php',
data: 'filename=' +filename,
success: function(html) {
document.getElementById(fileID).innerHTML = html + ' <img src="images/loading.gif" />'
setInterval("get_progress(fileID,filename)",400);
}
});
}
});}
Я столкнулся с ошибками, как только setInterval запускается при успешном завершении. Похоже, что fileID и filename - пустые переменные, несмотря на то, что они имеют значения до того, как код достигнет состояния успеха.
Почему это происходит? Должен ли я назначать их как глобальные переменные?
Быстрый (не имеющий отношения) вопрос: почему бы не использовать jQuery для вашей функции успеха тоже? например '$ ('#' + fileID) .append ('');'? – NickAldwin
Возможный дубликат [Использование метода setInterval и запрос jQuery alternate] (http://stackoverflow.com/questions/4562399/usage-of-setinterval-method-and-asking-for-jquery-alternate) – Quentin
@David Dorward : как это может быть дубликат? Моя проблема заключается в доступе к переменной внутри функции ajax, в то время как эта ссылка, которую вы вставили, имеет отношение к setinterval – Kyle