我已經得到的基本上決定了哪個按鈕應該通過在任何一點的web應用程序可見選擇一個簡單的數組功能。dynamiclly設置事件聽者應該叫
所以對於家庭數組是這樣的:第1步
if (view === "home") {
visibleCommands = [];
visibleCommands[0] = "contact";
visibleCommands[1] = "about";
}
setVisibility(visibleCommands);
然後,我遍歷數組:第2步
setVisibility(visibleCommands) {
var i;
for (i in visibleCommands) {
document.getElementById(visibleCommands[i].style.display = "inline";
}
addEvents(visibleCommands);
}
然後最後,因爲我要添加單獨的事件可見命令聽衆:步驟3
addEvents(visibleCommands) {
var i;
for (i in visibleCommands) {
document.getElementById(visibleCommands[i]).addEventListener("click", visibleCommands[i], false);
}
}
然而事件似乎並沒有掛鉤到v中的元素IEW,如果我改變這一行:
document.getElementById(visibleCommands[i]).addEventListener("click", contact, false);
然後正確地被掛在元件和接觸()函數被調用。
我在做什麼錯?
的console.log(visibleCommands [I])的內部的for循環給我 「接觸」 – CLiown
因此所得到的輸出應爲:的addEventListener( 「點擊」,接觸,FALSE); – CLiown
@CLiown。看到更新,你可以使用'eval'''eval(visibleCommands [i])'從字符串中獲取函數引用,但是你應該更好地設計你的代碼,所以你不會使用它。 – gdoron