当按下按钮时尝试从JSON获取数据,并且由于某种原因,我第一次按下按钮时出现错误,然后如果再次点击它,我会得到弹出窗口,但ID为第一次按下。我明白它在做什么,但我不知道为什么。
数据:
id: 1, price: 5.00;
id: 2, price: 9.30;
脚本:
function updateStock(id){
$.ajax({
url: 'json.watching.php?id=' + id,
dataType: 'json',
cache: false,
success: function(data) {
price = data.price;
}
});
$('#dialog-popup').html("<div align='center'>id: " + id + ". Price: " + price + "</div>");
$("#dialog-popup").dialog("open");
}
按钮:
<button onclick="updateStock(1)" style="button">Button 1</button>
<button onclick="updateStock(2)" style="button">Button 2</button>
第一次按下按钮时,我得到了Uncaught ReferenceError:未定义价格,但如果我再次按下它,我会得到数据,但是从按钮的ID开始按下它。因此,如果加载页面并按下第一个按钮我得到错误,如果我按下相同的按钮我得到正确价格的弹出窗口,但是如果我按下第二个按钮,我的弹出窗口响应&#34; id:2。价格:5.00&#34;。 id是正确的但ajax数据来自上一次按下按钮并且不更新变量。
答案 0 :(得分:0)
Ajax是异步的,所以你要在它设置之前读取它。将对话框调用移至成功调用内部。
function updateStock(id){
$.ajax({
url: 'json.watching.php?id=' + id,
dataType: 'json',
cache: false,
success: function(data) {
price = data.price;
$('#dialog-popup').html("<div align='center'>id: " + id + ". Price: " + price + "</div>");
$("#dialog-popup").dialog("open");
}
});
}