在jQuery+;$中无法读取全局js变量。AJAX
早上好 我试图在在jQuery+;$中无法读取全局js变量。AJAX,jquery,json,var,populate,Jquery,Json,Var,Populate,早上好 我试图在.ready()之前填充一个名为statusJson的全局变量,但由于某些原因,可以通过chrome控制台调试访问和读取变量,但脚本无法读取变量 守则: 可以看到,json信息是通过$.ajax从远程php文件获得的,我创建了一个模拟ajax json响应的var,并对原始$.ajax代码进行了注释 问题是: 由于某些原因,chrome调试控制台返回未捕获类型错误:无法读取未定义的属性“0” 感谢所有:)您需要将JSON解析为对象 替换如下: statusJson = ajaxD
.ready()
之前填充一个名为statusJson
的全局变量,但由于某些原因,可以通过chrome控制台调试访问和读取变量,但脚本无法读取变量
守则:
可以看到,json信息是通过$.ajax
从远程php文件获得的,我创建了一个模拟ajax json响应的var,并对原始$.ajax
代码进行了注释
问题是:
由于某些原因,chrome调试控制台返回未捕获类型错误:无法读取未定义的属性“0”
感谢所有:)您需要将JSON解析为对象 替换如下:
statusJson = ajaxData;
与
并移动$(函数(){Status.init();})代码>后状态
定义
我的朋友,你的代码的结束示例:
var statusJson = {};
var Status = new (function(){
// public function //
function init(){
// this is the data returned by $.ajax:
var ajaxData = '{"status":["ok","allwork"],"statuses":{"login":true},"stream":{"1373877245":{"title":"asjdhfgjqwherh"}}}';
statusJson = $.parseJSON(ajaxData);
this.updateHeader();
};
// private function //
function updateHeader(){
$(".status-header span")
.fadeOut()
.addClass(statusJson.status[0])
.text(statusJson.status[1])
.fadeIn();
};
// return the PUBLIC functions //
return {
init: init
};
})();
Status.init();
我想,答案已经被解析了。原始代码是这样的:,如您所说进行了修改,答案是相同的uncaughttypeerror:cannotreadproperty“0”of undefined
Updated,如您所说。仍然无效:,未捕获类型错误:无法读取未定义行的属性“0”:15。本地测试并确保来自statusjson.php
的响应位于JSON
formatis JSON,标题(“内容类型:应用程序/JSON”)
Tryecho json\u encode($response\u data)代码>或回显“{”状态“:[“ok”,“allwork”],“status”:{“login”:true},“stream”:{“1373877245”:{“title”:“asjdhfgjqwherh”}}}代码>否,未捕获类型错误:对象没有方法“updateHeader”
无法加载updateHeader()
,与状态相同。updateHeader
var statusJson = {};
var Status = new (function(){
// public function //
function init(){
// this is the data returned by $.ajax:
var ajaxData = '{"status":["ok","allwork"],"statuses":{"login":true},"stream":{"1373877245":{"title":"asjdhfgjqwherh"}}}';
statusJson = $.parseJSON(ajaxData);
this.updateHeader();
};
// private function //
function updateHeader(){
$(".status-header span")
.fadeOut()
.addClass(statusJson.status[0])
.text(statusJson.status[1])
.fadeIn();
};
// return the PUBLIC functions //
return {
init: init
};
})();
Status.init();