對不起,如果這看起來有點容易。我還是比較新的Javascript。不確定我很理解Javascript中的變量範圍
我正在生成複選框列表。在onClick的複選框,我想讓它彈出其相關的文本。即。名爲「one」的複選框應顯示「one」。在我的例子中,它只顯示「兩個」。
但是,click()回調方法只調用最後一次添加的複選框的文本。這裏的'v'變量沒有被分配到每個複選框嗎?看起來'v'的行爲像一個全局變量。
this.view = document.createElement("div");
var tbody = document.createElement("tbody");
var popupValues = {"A", "B"};
for (var i=0;i<this.popupValues.length;i++) {
var v = popupValues[i];
var tr = document.createElement('tr');
var tdCheck = document.createElement('td');
var ChkBx = document.createElement('input')
ChkBx.type = 'checkbox';
tdCheck.appendChild(ChkBx);
var self = this;
$(ChkBx).live('change', function(){
if($(this).is(':checked')){
alert('checked' + v);
} else {
alert('un-checked' + v);
}
});
var td = document.createElement("td");
td.appendChild(document.createTextNode('' + v));
tr.appendChild(tdCheck);
tr.appendChild(td);
tbody.appendChild(tr);
}
table.appendChild(tbody);
document.appendChild(table)
這裏的jsfiddle: http://jsfiddle.net/n5GZW/2/
任何人都知道我做錯了嗎?
更新:更新的jsfiddle
你撥弄沒有做什麼... – Alvaro
你確定嗎?我正在使用Chrome瀏覽器:http://jsfiddle.net/n5GZW/1/ –
您尚未在小提琴中啓用jQuery – Alnitak