0

構成アイテムを保持する配列(それが何であるか)を持つプラグインをカスタマイズしています:

        var config = {
            width:  "100%",
            height: "100%",
            source: 'js/timeline/test.json',                
            css:    'js/timeline/compiled/css/timeline.css',    
            js:     'js/timeline/compiled/js/timeline-min.js'   
        }

私がやりたいのは、source:データを取得して変数に置き換えることです。例:

var mysource = 'path/to/source.json';

var config = {
                width:  "100%",
                height: "100%",
                source: mysource ,              
                css:    'js/timeline/compiled/css/timeline.css',    
                js:     'js/timeline/compiled/js/timeline-min.js'   
            }

しかし、上記のようにそれは機能しません。誰かが私を正しい方向に向けることができますか?ありがとう

編集:要求に応じて完全なコードを追加しました

$(function() {

    $.getJSON('http://www.mysite.com/json.php',

    function(data) {

        jsonObject = eval(data);
        var eventdata = jsonObject.tlall;

    });

}); //END ON LOAD

var config = {
    width: "100%",
    height: "100%",
    source: eventdata,
    //source: 'js/timeline/test.json',
    //start_at_end: true,   //OPTIONAL              
    //hash_bookmark: true,  //OPTIONAL              
    css: 'js/timeline/compiled/css/timeline.css',
    js: 'js/timeline/compiled/js/timeline-min.js'
}​
4

3 に答える 3

2

この行を変更します。

var eventdata = jsonObject.tlall;

これに:

config.source = jsonObject.tlall;

そして、構成定義から次の行を削除します。

source: eventdata,
于 2012-08-23T06:38:32.913 に答える
1

スコープの問題、試してみてください:

$(function() {
    $.getJSON('http://www.mysite.com/json.php', function(data) {
        config.source = data.tlall;
    });

    var config = {
        width: "100%",
        height: "100%",
        css: 'js/timeline/compiled/css/timeline.css',
        js: 'js/timeline/compiled/js/timeline-min.js'
    }
});​
​
于 2012-08-23T06:38:00.380 に答える
1

正確にどのように使用する予定かはわかりませんがconfig、にアクセスするには、同じスコープ内にある必要がありますeventdata。私はそれを完全に取り除き、ajaxコールバック(以下のコードに示されている)のオブジェクトのプロパティとしてそれを追加するだけだと思います。

configここでの難しさは、スクリプトで使用できるようになる前に、AJAXコールバックが起動するのを待って立ち往生していることです。これが、ajaxが線形ではなく特定のイベントの後に実行されるコールバックで使用されるように設計されている理由です。configその成功コールバック内でのみ使用するか、getJSON実行が終了したかどうかを確認するためのチェックを追加することをお勧めします。

$(function() {

    var config = {
        width: "100%",
        height: "100%",            
        css: 'js/timeline/compiled/css/timeline.css',
        js: 'js/timeline/compiled/js/timeline-min.js'
    };

    $.getJSON('http://www.mysite.com/json.php', function(data) {
        jsonObject = eval(data);
        config.source = jsonObject.tlall;
    });

}); //END ON LOAD​​​​​​​​​​​​​​​​
于 2012-08-23T06:39:36.427 に答える