Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   $.get в цикле for (https://javascript.ru/forum/jquery/71584-%24-get-v-cikle.html)

wwonder 29.11.2017 17:24

$.get в цикле for
 
Помогите понять природу ошибки и ее обходные пути
for (i = 1; i <=5; i=i+2) 
{
//Тут выводит 1 3 5
alert(i);
$.get('modules/handler/update.php',
	//тут правильно передает 1 3 5
        {i:i}, 
	function(data) {
		//тут выводит сразу 7 7 7 и неправильно передает id дива
                alert(i);	
		$('#setka_' + i).html(data);
		}
	);
}

Я так понимаю дело в том что цикл проходит быстрее чем выполняется $.get? Впервые сталкиваюсь с такой проблемой. Нужно соответственно что бы
$('#setka_' + i).html(data);
видел 1 3 5

Nexus 29.11.2017 17:29

Цитата:

Сообщение от wwonder
Я так понимаю дело в том что цикл проходит быстрее чем выполняется $.get?

Верно.
Можно так попробовать:
for (i = 1; i <= 5; i = i + 2) {
    //Тут выводит 1 3 5
    alert(i);
	
	(function(i){
		$.get('modules/handler/update.php',
			//тут правильно передает 1 3 5
			{
				i: i
			},
			function(data) {
				//тут выводит сразу 7 7 7 и неправильно передает id дива
				alert(i);
				$('#setka_' + i).html(data);
			}
		);
	})(i)
}

wwonder 29.11.2017 17:33

Сработало, огромное спасибо!!!


Часовой пояс GMT +3, время: 10:30.