非常感謝您的幫助。自定義jQuery函數隨機undefined
我有一個頁面呈現一些圖表,但我似乎只是偶爾遇到一個範圍問題。
我有一系列的jQuery函數,我根據傳入的選項呈現特定類型的圖表,每個函數都包含一個AJAX調用,以根據調用圖表函數時提交的選項請求正確的數據集圖表容器。
一些圖表與第二個圖表配對,第二個圖表的選項由第一個圖表AJAX調用響應的JSON響應確定。 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);
});
您確定美元符號不會被其他東西覆蓋嗎?當然,我總是使用對jQuery的明確引用來保證美元符號沒有被其他圖書館「聲稱」。嘗試將'''$''''切換到'''jQuery''',如果你不確定,看看問題是否消失。我懷疑這是問題,但值得檢查。 – CPR
將您的代碼放在: '$(document).ready(function(){ //您的代碼在這裏 });' –
謝謝@CPR但它仍然會拋出同樣的錯誤。 – BigDrums