0

みなさん、おはよう、

statusJsonの前に呼び出されたグローバル変数を設定しようとしてい.ready()ますが、何らかの理由でクロムコンソールデバッグで変数にアクセスして読み取ることができますが、スクリプトは変数を読み取ることができません.

コード: http://jsfiddle.net/wiitohzjeh/pEKyT/

ご覧のとおり、json 情報は$.ajaxリモートの php ファイルから取得されます。ajax-json 応答をシミュレートする var を作成し、元の$.ajaxコードにコメントを付けました。

問題: 何らかの理由でクロム デバッグ コンソールが返されるUncaught TypeError: Cannot read property '0' of undefined

ありがとうございます :)

4

2 に答える 2

0

JSONをオブジェクトに解析する必要があります

以下を置き換えます。

statusJson = ajaxData;

statusJson = $.parseJSON(ajaxData);

定義$(function(){ Status.init(); });後に移動Status

更新されたフィドル

于 2013-07-15T08:51:06.153 に答える
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();
于 2013-07-15T09:32:44.217 に答える