私のプロジェクトでは、以下のようなJavaScript関数があります。JavaScriptのグローバル変数返り値が未定義
function refTable(clickon) {
t_threads = document.getElementById("tab_threads");
//Activate timeline for specific thread on active thread onclick in table
t_line = document.getElementById("tline");
t_lineH1 = GetElementInsideContainer("tl_tit", "tl_h4");
var c_type = clickon;
$.ajax({
type: "POST",
url: "trefresh",
data: {},
success: function (data) {
t_threads.innerHTML = "";
$.each(data, function (index) {
var row = t_threads.insertRow(0);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cell4 = row.insertCell(3);
var cell5 = row.insertCell(4);
cell1.innerHTML = data[index].OptionID;
cell2.innerHTML = data[index].OptionKey;
cell3.innerHTML = data[index].OptionVal;
cell4.innerHTML = data[index].OptionVal2;
cell5.innerHTML = data[index].OptionThread;
});
var rows = t_threads.rows; // or table.getElementsByTagName("tr");
for (var i = 0; i < rows.length; i++) {
rows[i].onclick = (function() { // closure
var cnt = i; // save the counter to use in the function
return function() {
task_det(this.cells[0].innerHTML);
t_line.style.visibility='visible';
t_lineH1.innerHTML = "TIMELINE FOR PROC. ID: "+this.cells[0].innerHTML;
c_type = this.cells[4].innerHTML;
getTline(c_type)
//alert("row"+cnt+" data="+this.cells[0].innerHTML);
}
})(i);
}
}
});
alert(c_type);
setTimeout(refTable.bind(c_type), 10000);
}
問題は、私は、警告置く場所を、変数結果は私がc_type
グローバルを作成し、保存することができますどのように
を「未定義」で、世界的なVAR c_type
は私のjQueryの機能に移入され、いつでもあるとそれは価値ですか?変数グローバルだけで
var c_type = clickon;
およびその他のオプションは、ブラウザウィンドウになり、グローバルオブジェクト、それを定義することができ、関数の外で宣言作るため、事前
'c_type 'がグローバルではない場合は、内部で' refTable() 'と定義しています。それを外に出しなさい。タイプミスとして閉じます。また、グローバルを使うことは良いデザインパターンではないことにも注意してください。 –