我试图运行一个jQuery/Javascript函数来搜索外部JSON文件,如果给定的变量是JSON的用户名之一,则返回true
。Jquery/Javascript跳过线?
这是我有: (给出的变量player
等于a
)
function loggedIn(player) {
var result = false;
var liurl = "liplay.json";
$.getJSON(liurl, function (json) {
$.each(json, function (key, value) {
if (value.username == player) {
alert();
result = true;
} else {}
});
});
return result;
}
外部JSON文件(liplay.json)是这样的:
[{"username":"a"},{"username":"q"}]
对于一些原因,代码总是返回false。
我试着一次一步地运行它,并且我发现无论出于何种原因,Chrome都运行了前几行代码,直到$.getJSON(liurl, function(json){
,然后跳到return result;
。我不知道为什么它跳过运行if/else语句的部分。任何想法,为什么会发生这种情况,以及如何解决它?
不要在loggedIn函数中返回结果,只需在getJSON的成功回调中执行任何您需要的操作。这是因为它异步执行。 – 2012-04-04 01:49:41
我相信,一旦你得到你的JSON反序列化,你可以简单地检查阵列没有循环它: return json [player]!= undefined; – 2012-04-04 11:24:51