我試圖動態創建按鈕和assining爲每一個上單擊警報功能相同的值event.Here是JavaScript函數爲:動態綁定onclick事件給出了所有的按鈕在for循環中
function GetTabs(tabObj) {
for (var t = 0; t < tabObj.views.view.length; t++) {
var podObjlen = '';
var element = document.createElement('input');
element.id = "btn" + t;
element.setAttribute("type", "button");
element.setAttribute("value", "Click");
element.setAttribute("name", "button");
podObjlen = tabObj.views.view[t].pod.length;
document.body.appendChild(element);
document.getElementById('btn' + t).onclick = (this, "onclick", function {
alert(podObjlen);
});
}
}
無論按下哪個按鈕,我都會點擊該提示總是向我顯示所有按鈕的循環中的最後一個值,即將長度值分配給所有提醒。它不爲每個按鈕的警報分配獨立的值。 我已經嘗試了多種方法,如:
element.getElementById('btn' + t).onclick = (this, "onclick", function {
alert(podObjlen);
});
element.getElementById('btn' + t).onclick = new function() {
alert(podObjlen);
}
(這表明在alertbox我正確的價值觀,但我得到了其他汽車無後警報之一,但警報失敗即警報觸發的開火時,我實際點擊一個按鈕當我的按鈕被渲染的時候 希望我清楚我想要的是我需要獲得實際的值,以便在循環運行時提醒每個按鈕
閉包的概念:) – ComethTheNerd 2012-07-10 10:51:14
閱讀起來真不走運的是,'的onclick =(這一點,「點擊」,...'部分沒有給你一個語法錯誤。這不是很有意義 - 你期望'this'和''onclick''做什麼? – pimvdb 2012-07-10 10:53:00