我正在自定义一个包含数组的插件(如果就是这样),它包含配置项:
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'
}
答案 0 :(得分:2)
更改此行:
var eventdata = jsonObject.tlall;
对此:
config.source = jsonObject.tlall;
从配置定义中删除此行:
source: eventdata,
答案 1 :(得分: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'
}
});
答案 2 :(得分: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