0

我正在构建的网站上有一个微笑时间线小部件。我已经遵循了几个关于如何实现和自定义它的教程,到目前为止一切都很好。但是我找不到使用 Json 服务而不是使用存储在 js 文件中的全局变量中的数据的方法。我不擅长 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.

这就是我尝试过的,但我坚持如何在变量中存储整个输出,而不仅仅是一个条目:

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

试试这个:

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 回答
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 回答