在 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 得到警报,所以我认为毕竟不是这样。
最佳答案
您已经在名为 show_graph
的函数中。它不是调用您想要的函数,而是调用自身,然后将另一个单击操作添加到...一个不匹配任何内容的 jquery 选择器。所以重命名你的内部函数,一切都应该工作。
关于javascript函数没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8161188/