J'ai un problème avec ce script. Au début, j'avais le <div>
s codé en dur et cela fonctionnait bien. Mais ensuite, j'ai dû modifier la barre de navigation de manière dynamique parce que j'ai changé le (nombre de) liens.
Le problème est que les identifiants ne s'enregistrent pas lorsqu'ils sont injectés à l'aide de la fonction element
.innerHTML = (chaîne html).
Comment puis-je réparer cela ?
Voici le code :
javascript :
function constructNav() {
var submenu_layer_innerHTML = "";
var top_nav_innerHTML = "<UL class=\"nav_category\">";
for (i=0; i<links.length; i++) {
submenu_layer_innerHTML = "<div class=\"submenu\" id=\"submenu" + i + "\" onMouseOut=\"timeHideNav('" + i + "','1000')\"> </div>";
top_nav_innerHTML += "<LI id=\"link" + i + "\"><a href=# onMouseOver=\"expandNav('" + i + "');\">" + links[i] + "</a></LI>";
}
top_nav_innerHTML += "</UL>";
document.getElementById("top_nav").innerHTML = top_nav_innerHTML;
document.getElementById("submenu_layer").innerHTML = submenu_layer_innerHTML;
}
html :
<script type="text/javascript" src="scripts.js"> </script>
<script type="text/javascript">
var links =["link 1",
"link 2",
"link 3",
"link 4",
"link 5",
"link 6"];
</script>
<body onLoad="constructNav();">
<div id="submenu_layer"> </div>
<div id="top_nav"> </div>
J'obtiens cette erreur dans firefox :
line 35: document.getElementById("submenu"+pageNo) is NULL