私は本当に巨大なjquery関数を持っています。読みやすくするために、どうやって別の場所に置くことができますか?別の関数(より具体的には、私が今定義したAjax呼び出しの中で)の中で呼び出すだけです。イベントなしですぐに呼び出すことなく関数を定義する(クリック/ホバー...)
問題は、私が関数を定義すると自動的に実行され、その必要がないということです。私はそれをAjax呼び出しの中で実行したいが、そこには定義しない。
$.ajax({
type: 'post',
url: 'api/'+$("#id").val()+"/"+$("#from").val()+"/"+$("#to").val(),
data: {},
success: function generateChart(data) {
var results = JSON.parse(data);
if (results.error == true) {
var errCode = results.code;
alert(errCode);
}
else {
var chartjsTemp = [];
var chartjsDate = [];
for (var i = 0; i < results.length; i++) {
chartjsTemp.push(results[i].probeTemp);
chartjsDate.push(results[i].dateProbe);
}
var ctx = document.getElementById('myChart').getContext('2d');
var button = $("#submitButton");
submitButton.addEventListener("click", function(){
myChart.destroy();
});
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: chartjsDate,
datasets: [{
label: 'temp',
data: chartjsTemp,
backgroundColor: "rgba(240,240,240,0.5)"
}]
}
});
}
}
});
私はどこかに私の「generateChart」機能を入れたい:
は、ここで私が持っているもののサンプルコードです。私は「どこか」それを入れて行う場合は、単に "success: generateChart()"
それは動作しませんし、ページのロード時に代わりに実行します。
は、コードの伴侶を表示、私は/の代わりに溶液を得たかもしれない可能性が同じコメントを投稿する – Satpal
*問題は、私が関数を定義すると、自動的に*実行されるということです。私たちにコードを教えてください。 –
'$(document).ready()'関数の外で定義してください。そして、私たちはいくつかのコードスニペットなしであなたを助けることはできません。 –