我正在尝试创建一个列表,以便在单击 LI 元素时显示特定的 div。我想从字典中读取 div 的 id 和其他属性。所以,字典看起来像这样:
var ifSrc = {"welcome":"welcome.html",
"proceduresAndComputers":"../proceduresAndComputers/index.html",
"someId":"../someSourceFileForAnIFrame"}
以及形成这些 LI 元素的功能
function createMenu(){
var listy = document.getElementById("sidebar");
for(var key in ifSrc){
var elem = document.createElement('li');
elem.innerHTML = key;
elem.className = "unselected";
elem.addEventListener("click",function(){openDiv(this,key);},false);
listy.appendChild(elem);
}
listy.firstElementChild.className="selected";
}
因此,菜单(带有 LI 元素的 UL)看起来不错,但无论我单击哪个 LI,openDiv 函数都会传递正确的值this
,但传递相同的值key
。特别是,它传递字典key
中的最后一个值。ifSrc
但是,每个 elem(设置为key
)的 innerHTML 看起来都很好。我检查了 addEventListener 的文档,但找不到太多。
为什么会这样?有什么见解吗?