0

構築しているサイトにSmileタイムラインウィジェットがあります私はそれを実装してカスタマイズする方法についていくつかのチュートリアルに従いましたが、これまでのところすべて良いです。ただし、jsファイルのグローバル変数に格納されているデータを使用する代わりにJsonサービスを使用する方法を見つけることができません。私はjavascriptが得意ではないため、Json出力全体(適切にフォーマットされている)をグローバル変数に格納する方法を見つけることができませんでした。

グローバル変数のデータは次のようになります。

var timeline_data = { 
'events' : [
        {'start': '2000',
        'title': 'Barfusserkirche',
        'description': 'by Lyonel Feininger, American/German Painter, 1871-1956',
        'image': 'http://images.allposters.com/images/AWI/NR096_b.jpg',
        'link': 'http://www.allposters.com/-sp/Barfusserkirche-1924-Posters_i1116895_.htm'
        },

        {'start': '2001',
        'end': '2004',
        'title': 'Three Figures',
        'description': 'by Kasimir Malevich, Ukrainian Painter, 1878-1935',
        'image': 'http://images.allposters.com/images/BRGPOD/75857_b.jpg',
        'link': 'http://www.allposters.com/-sp/Three-Figures-1913-28-Posters_i1349989_.htm'
        },

        {'start': '2002',            
        'end' : '2003',
        'title': 'Landschaft bei Montreuil',
        'description': 'by Albert Gleizes, French Painter, 1881-1953',
        'image': 'http://images.allposters.com/images/mer/1336_b.jpg',
        'link': 'http://www.allposters.com/-sp/Landschaft-bei-Montreuil-Posters_i339007_.htm',
        'isDuration' : true,
        'icon' : "red-ico.gif",        
        'color' : '#ffcc00',
        'textColor' : 'green'}
]}

これがタイムラインでの呼び出し方法です。

var url = '.'; // The base url for image, icon and background image references in the data
eventSource1.loadJSON(timeline_data, url); // The data was stored into the timeline_data variable.

それは私が試したことですが、1つのエントリだけでなく、出力全体を変数に格納する方法に固執しています。

var timeline_data;//at global scope
$.ajax({ 
        type: 'GET', 
        url: '/timeline/json_output.json', 
        dataType: 'json', 
        timeout: 10000, 
        crossDomain: true, 
        success: function(result) {
            timeline_data = result;
        }
});

今、timeline_dataの使い方がわかりません。配列オブジェクトだと思って、さらに先に進む方法がわからない。

前もって感謝します

4

2 に答える 2

0

私は実際にこれをここで見つけて、魅力のように働きました!

function getJson(url) {
 return JSON.parse($.ajax({
     type: 'GET',
     url: url,
     dataType: 'json',
     global: false,
     async:false,
     success: function(data) {
         return data;
     }
 }).responseText);
}

var myJsonObj = getJson('myjsonurl');

もっと効率的な方法はありますか?

于 2012-09-07T09:27:09.813 に答える
0

これを試して:

var timeline_data;//at global scope
$.ajax({ 
    type: 'GET', 
    url: '/timeline/json_output.json', 
    dataType: 'json', 
    timeout: 10000, 
    crossDomain: true, 
    success: function(result) {
        for(var i = 0; i < result.events.length; ++i){
            $.each(result.events[i], function(key, value) { 
                console.log(key + ': ' + value); 
            });
        }
    }
});
于 2012-09-07T09:12:13.473 に答える