Bonjour à tous,
Je viens ce soir quémander l'aide des membres de ce forum parce qu'il se trouve que je reste en pleine incompréhension face au problème qui s'oppose à moi.
Pour expliquer rapidement le principe, c'est un tout petit code en javascript qui consiste à changer le "display" ainsi que le contenu des certains <div> en fonction de la demande de l'utilisateur. Plus précisément ce dernier choisi d'afficher soit les bâtiments d'une race soit ceux d'une autre race (en l'occurrence elfes et humains).
Le problème survient lorsque l'utilisateur ayant déjà affiché les bâtiments d'une certaine race, décide maintenant de voir les bâtiments de l'autre race. Il se trouve que les bâtiments se superposent alors qu'ils ne devraient pas puisque j'ai gardé en mémoire dans un <div> invisible la valeur de la race précédente et que dans ma fonction d'affichage cette dernière est censée être supprimée. De plus je remarque que uniquement la valeur 'Hu' est retenue et celle de 'El' ne passe jamais dans le <div> invisible, étrange...
Ma fonction javascript :
Mon code html :
Peut-être n'ai-je pas été suffisamment clair, mais en tout cas merci d'avance.
Cordialement, emaia.
Je viens ce soir quémander l'aide des membres de ce forum parce qu'il se trouve que je reste en pleine incompréhension face au problème qui s'oppose à moi.
Pour expliquer rapidement le principe, c'est un tout petit code en javascript qui consiste à changer le "display" ainsi que le contenu des certains <div> en fonction de la demande de l'utilisateur. Plus précisément ce dernier choisi d'afficher soit les bâtiments d'une race soit ceux d'une autre race (en l'occurrence elfes et humains).
Le problème survient lorsque l'utilisateur ayant déjà affiché les bâtiments d'une certaine race, décide maintenant de voir les bâtiments de l'autre race. Il se trouve que les bâtiments se superposent alors qu'ils ne devraient pas puisque j'ai gardé en mémoire dans un <div> invisible la valeur de la race précédente et que dans ma fonction d'affichage cette dernière est censée être supprimée. De plus je remarque que uniquement la valeur 'Hu' est retenue et celle de 'El' ne passe jamais dans le <div> invisible, étrange...
Ma fonction javascript :
Code :
function ShowMap(race){
var urlBase = '../images/bat_';
raceOLD = document.getElementById('raceOLD');
for (i=1;i<=2;i++){
/* On affiche la race choisie. */
document.getElementById('bat_'+race+'_0'+i).style.display = '';
document.getElementById('img_'+race+'_0'+i).src= urlBase+race+'_0'+i+'_01.gif';
if(raceOLD.length != 0)
{
/* On supprime la dernière race pour qu'il n'y ait pas de superposition. */
document.getElementById('bat_'+raceOLD+'_0'+i).style.display = 'none';
}
}
/* La race venant d'être sélectionnée devient la race à supprimée lors d'un prochain choix. */
document.getElementById('raceOLD').innerHTML = race;
}
Mon code html :
Code :
<div id="bat_Hu_01" style="display:none;">
<img id="img_Hu_01" src="">
</div>
<div id="bat_Hu_02" style="display:none;">
<img id="img_Hu_02" src="">
</div>
<div id="bat_El_01" style="display:none;">
<img id="img_El_01" src="">
</div>
<div id="raceOLD" style="display:none;">
</div>
<select name="race" id="liste" onChange="ShowMap(this.value)">
<option value="Hu">Humain</option>
<option value="El">Elfe</option>
</select>
Peut-être n'ai-je pas été suffisamment clair, mais en tout cas merci d'avance.
Cordialement, emaia.
Cordialement, emaia.