自定义 jQuery 函数随机未定义



提前感谢您的帮助。

我有一个呈现一些图表的页面,但我似乎偶尔遇到范围问题。

我有一系列jQuery函数,用于根据传入的选项呈现特定类型的图表,每个函数都包含一个AJAX调用,以根据在图表容器上调用图表函数时提交的选项请求正确的数据集。

某些图表与第二个图表配对,第二个图表的选项由第一个图表 AJAX 调用响应的 JSON 响应确定。在触发 AJAX 成功:之后,配对图表在第一个图表的回调中呈现。

大多数情况下,这工作得很好,但偶尔我会收到错误"类型错误:$(...)。折线图不是一个函数"。第一个条形图每次都呈现,但偶尔在与条形图相同的文件中定义的折线图函数不再可访问。

我添加到代码中的任何延迟似乎都可以解决问题。当我使用调试器时,这个问题不存在,我可以捕获错误并在超时后重新调用 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);
});

将代码括在 : $(document).ready(function(){ //YOUR CODE GOES HERE });这将解决函数未加载的问题。

最新更新