Я никогда не был знаком с JavaScript или jquery, но мой последний проект потребовал, чтобы я стал лучше. Я пытаюсь создать виджет для веб-сайта. Этот виджет использует ajax для доступа к данным json из другого домена. Этот виджет может иметь несколько экземпляров на одной странице, каждый с разными настройками.Получение моего ajax в порядке
Я использую JQuery, чтобы найти все элементы с определенным классом, который определит, куда должны идти виджеты. Я использую пользовательские атрибуты данных для сохранения настроек для каждого виджета в том, что будет в контейнере.
Проблема, с которой я сталкиваюсь, заключается в следующем;
Поскольку аякс-запрос является асинхронным, результаты идут в случайном порядке. Код Ihave до сих пор
<script>
var currentContainer;
$(document).ready(function(){
$($(".container")).each(function(index){
currentContainer = this;
var url =
"http://example.com/json.php?iid="+$(this).data("owner_id")+
"&iid="+$(this).data("item_id")+
"&l="+$(this).data("layout")+
"&callback=?";
var request = $.get(url,function(data){
console.log(data)
display(data.oid,data.iid,data.l);
},"jsonp");
});
});
function display(oid,iid,l){
$(currentContainer).html("Owner Id = "+oid+" Item Id = "+iid+" Layout = "+l);
}
И в теле ....
<div class="container" data-owner_id="George" data-item_id="car" data-layout="tidy">-</div>
<div class="container" data-owner_id="tim" data-item_id="computer" data-layout="allovertheplace">-</div>
<div class="container" data-owner_id="dee" data-item_id="hammer" data-layout="effingmess">-</div>
В результате я получаю случайные данные только последний. Любые идеи очень ценятся!
Попробуйте добавить 'var' перед' currentContainer' и передать 'currentContainer' в функцию' display'. –