【发布时间】:2011-12-30 23:07:47
【问题描述】:
在 Django 模板中,我有一个函数
function show_graph(i){
$("#"+i+"seegraph").click(function(){
$("#"+i+"graph").show();
var qaa = {{ question_ids }};
var qid = qaa[i-1];
jQuery.ajax({
url: "/canvas/recreatechart/",
type: "get",
data: {qid: qid },
success: function(response){
var resp = jQuery.parseJSON(response);
alert("chart1"+i);
show_graph("chart1"+i, resp['chart_type'], resp['series_names'], JSON.stringify(resp['data1']), resp['answer'], resp['stories1'], resp['colors'], resp['stacked'], resp['title1']);
show_graph(resp['second_graph']+i,resp['chart_type'], resp['series_names'], resp['data2'], resp['answer'], resp['stories2'], resp['colors'], resp['stacked'], resp['title2']);
}
});
});
}
并立即在 show_graph 内发出警报,我从中推断出 show_graph 没有被调用,但我不知道为什么。
我的控制台没有任何错误,当我尝试在第一次调用中逐个提醒每个参数时,它们都按预期显示,尽管“data1”显示为“object Object”,类型为“object”(当我对data1进行字符串化时,它按预期出现了,虽然我不知道这是否意味着什么)。
请注意,data1 是一个字典数组,其值是数组的数组。所以,稍微复杂点,不知道js能不能解析结构。
这就是我的函数没有被调用的原因吗?如果不是,那是什么?如果是这样,我该如何修复它(鉴于这是我必须传递数据的格式)。如何找到问题所在?
编辑:我还想指出,我只是测试了一些简单的东西,比如 [5] 来代替 data1,因为我担心这会弄乱函数调用,但我仍然没有收到来自 show_graph 的警报,所以我认为毕竟不是这样。
【问题讨论】:
-
你希望它在哪里被调用?
-
我不明白你的问题。
-
我没听懂,为什么在成功的ajax调用中递归调用show_graph?并调用它两次?
-
“递归”是指“两次”吗?我调用它两次是因为我希望它在两个不同的 div 中生成一个图表。
-
不,递归。您已经在一个名为
show_graph的函数中。你有一个名为show_graph的不同的函数吗?
标签: javascript jquery html django-templates django-views