Прошу помощи связывании в последовательном связывании ajax запросов.(пример ниже работает некорректно). Правильная последовательность 1-2-3-4.
HTML:
<div id="1" data-loader="../components/header.html"></div>
<div id="2" data-loader="../components/navigation.html"></div>
<div id="3" data-loader="../components/body.html"></div>
<div id="4" data-loader="../components/footer.html"></div>
JS:
<script>
var url;
var id;
var j=1;
$(document).ready(function () {
$('div[data-loader]').each(function() {
url=$(this).attr("data-loader");
id=$(this).attr("id");
$.get(url, function(data){
$('#'+j).html(data);
j++;
});
});
});
Проблема в том, что код внутри $.get
будет выполнятся после всех each
. Т.к. неизвестно заранее в каком порядке придут ответы то невозможно заранее предугадать значение j
в каждом запросе.
Для того чтоб было последовательное выставление $('#'+1)
, $('#'+2)
, $('#'+3)
, нужно сохранить значение j
где нить в локальном замыкании внутри each
(чтобы каждый вызов each
сохранял свой j
).
Так должно работать:
var url;
var id;
var j=1;
$(document).ready(function () {
$('div[data-loader]').each(function() {
url=$(this).attr("data-loader");
id=$(this).attr("id");
var tmp_j = j++;
$.get(url, function(data){
$('#'+tmp_j).html(data);
});
});
});
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как передать document , ajax запросом , и обработать его (вывести на экран , сохранить в файле , что угодно)
Вопрос не только относительно данной библиотеки, а и относительно самого iframeДобавил google карту на сайт и думал добавить на нее интересный...