I have a question. I'm trying to dynamically add menu elements to my web page. This issue is that I'm handling page navigation through a callback. With the code I'm using right now, only the LAST element of the array is ever functional. I'm not sure why this is, but I'd love some help here. I've also supplied a jsfiddle page so that you can see what's happening.
Code: 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");
}
}