2
在此柱的端部的代碼中,變量經由 $(addProduct).attr(attrProductPrice);
,然後在JSON呼叫建立經由 $.getJSON(url, function(data) { console.log(data); pPrice = data.price; });
定義被覆蓋之後,但在同步.getJSON
呼叫後值,該值已恢復到其原始值。詞法作用域變量保持在一個的getJSON呼叫
如何通過.getJSON
調用覆蓋詞法範圍變量定義的定義?源代碼,簡稱爲相關部分:
function addToCart(i,qty){
var pPrice = $(addProduct).attr(attrProductPrice); //original value
var url = '/pricefor/' + pId;
$.getJSON(url, function(data) { console.log(data); pPrice = data.price; }); // new value
console.log(pPrice); // new value lost! back to original value?!
}
您確定''。$ .getJSON''調用是否真的同步嗎?這是默認的異步,除非你在其他地方覆蓋全局jQuery AJAX設置。否則這應該起作用。 – BishopRook