【发布时间】:2014-09-05 23:20:01
【问题描述】:
我遇到了困扰我的事情。我做的代码如下
var json='';
function displayThumbnails(list) {
json = list;
for(var i in list)
{
var image = $("<img class='item'>").attr("src", list[i].thumbnail);
$("#showThumbnails").append(image);
}
}
alert(json);
我想问变量 json 也有一个作用域之外的函数,但是警报显示空白值。
console.log(json) 在函数内时显示结果。 json 的作用域在函数后没有结束,但警报显示空白值。为什么。?
根据公众需求:D
这是mainpage.php
<script>
$(document).ready(function() {
var jqxhr = $.get( "php/list.php", function() {
})
.done(function(data) {
var list = JSON.parse(data);
console.log(list);
displayThumbnails(list);
})
.fail(function() {
alert( "Oh Snap, Server Error.!!! Try Again" );
location.reload();
});
});
</script>
【问题讨论】:
-
这个 JSON 是从哪里来的,ajax?
-
因为警报在函数之外并且在函数被调用之前被调用。将警报放入函数中。
-
@ShaunakD - 你怎么知道,发布的代码中根本没有函数调用?
-
@adeneo 你看到了吗?
displayThumbnails未被调用。 -
@SpencerWieczorek - 不,我写了 "there's no function call .." 所以很明显我没有看到函数调用,但是 OP 写了 "When console.log(json) 是在函数里面显示结果",所以在某处被调用,但谁知道在哪里呢?
标签: javascript jquery json scope