我有一个问题。我试图动态添加菜单元素到我的网页。这个问题是我通过回调来处理页面导航。通过我现在使用的代码,只有数组的LAST元素才能正常工作。我不确定这是为什么,但我想在这里得到一些帮助。我还提供了一个jsfiddle页面,以便您可以看到发生了什么。JQuery动态添加回调
代码:https://jsfiddle.net/usz2nvqw/
HTML:
<div id='page_nav'>
<!-- Navigation Elements -->
</div>
JAVASCRIPT:
var pages = {
"home": {
"resource_name": "Home",
"name": "Home Page",
"header": "Featured"
},
"catalogue": {
"resource_name": "Browse",
"name": "Browse Catalogue",
"header": "Public Catalogue"
}
};
$(document).ready(function() {
for (var key in pages) {
if (pages.hasOwnProperty(key)) {
//Add a new link for the Menu Navigation Element
document.getElementById('page_nav').innerHTML += "<a id='nav_" + key + "'>"
+ pages[key].name + "</a><br /><br />";
//Create a new callback for the Menu Navigation Element
$('#nav_' + key).click(createCallBack(key));
}
}
});
//Function for returning a callback
function createCallBack(key) {
return function() {
alert("Callback fired");
}
}
你可以找到回答为什么的innerHTML不起作用 http://stackoverflow.com/questions/5113105/manipulating-innerhtml-removes-the-event-handler-of-a-child-element – xinyuan