我從來沒有用JavaScript或jQuery好,但我最近的項目要求我變得更好。我正在嘗試爲網站創建一個小部件。這個小部件使用ajax從另一個域訪問json數據。這個小部件可能在同一頁面上有多個實例,每個實例都有不同的設置。讓我的AJAX按順序
我正在使用JQuery來查找具有特定類的所有元素,這將識別小部件需要去的位置。我使用自定義數據屬性來存儲每個小部件的容器設置。
我遇到的問題是這樣的;
因爲ajax請求是異步的,所以結果以有效的隨機順序進來。代碼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>
結果我得到的是僅在最後的隨機數據。任何想法非常感謝!
嘗試在'currentContainer'之前添加'var'並將'currentContainer'傳遞給'display'函數。 –