早上好,
我试图在statusJson
之前填充名为.ready()
的全局变量,但由于某种原因可以使用chrome控制台调试来访问和读取变量,但脚本无法读取变量。
代码:http://jsfiddle.net/wiitohzjeh/pEKyT/
可以看到,json信息是通过$.ajax
从远程php文件获取的,我创建了一个模拟ajax-json响应的var,并注释了原始的$.ajax
代码。
问题:
由于某种原因,chrome调试控制台返回Uncaught TypeError: Cannot read property '0' of undefined
感谢所有人:)
答案 0 :(得分:0)
您需要将JSON解析为对象
替换如下:
statusJson = ajaxData;
使用
statusJson = $.parseJSON(ajaxData);
在$(function(){ Status.init(); });
定义
Status
答案 1 :(得分:0)
我的朋友代码的闭包示例:
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();