提前谢谢你的帮助。
我有一个页面,它呈现了一些图表,但我似乎只是偶尔经历一次范围问题。
我创建了一系列jQuery函数,用于根据传入的选项呈现特定类型的图表,每个函数都包含一个AJAX调用,以根据调用图表容器上的图表函数时提交的选项请求适当的数据集。
其中一些图表与第二个图表配对,第二个图表的选项由第一个图表的JSON响应决定,AJAX调用响应。在AJAX成功触发之后,在第一个图表中的回调中呈现成对的图表。
大多数情况下,这是非常好的,但有时我会收到错误"TypeError:$(.).lineChart不是一个函数“。第一个barChart每次呈现,但偶尔也会呈现与barChart相同文件中定义的lineChart函数,该函数不再可访问。
我在代码中添加的任何延迟似乎都解决了这个问题。当我使用调试器时,这个问题不存在,并且我可以捕获错误并在超时之后重新调用lineChart函数,这个超时似乎也有效。
我不知道为什么这个函数有时不再可用,什么看起来是随机的。
我为没有贴上确切的代码而道歉。这里有一些注释和变量/函数名,我不能在这里发布。
谢谢。
$.fn.barChart = function (options, callback) {
$.ajax(options["url"], {
method: "POST",
type: "json",
data: options.data,
success: function (response) {
// ..render this chart ..
var optionsForNewChart = {}; // ..generate new options to respond with base on response JSON
callback(optionsForNewChart);
}
});
};
$.fn.lineChart = function (options) {
$.ajax(options["url"], {
method: "POST",
type: "json",
data: options.data,
success: function (response) {
// ..render this chart ..
}
});
}
$("#barChart1").barChart({
url: "https://...",
data: {
//post data
}
}, function (response) {
$('#lineChart1').lineChart(response);
});
$("#barChart2").barChart({
url: "https://...",
data: {
//post data
}
}, function (response) {
$('#lineChart2').lineChart(response);
});
$("#barChart3").barChart({
url: "https://...",
data: {
//post data
}
}, function (response) {
$('#lineChart3').lineChart(response);
});
发布于 2017-04-12 19:36:21
将您的代码放在:$(document).ready(function(){ //YOUR CODE GOES HERE });
中,这将解决函数未加载的问题。
https://stackoverflow.com/questions/43376460
复制相似问题