Bonjour à tous.
Voila mon problème. Je me sers de jQuery pour mettre à jour une carte de jeu, après récupération de données via une requête ajax. Une fois les données récupérées, je modifie la classe des div de ma carte. Cette mise à jour s'effectue lors d'un déplacement sur la carte, c'est à dire lors du clic de l'utilisateur sur une des flèches de déplacement affichées à l'écran.
Cependant une fois la mise à jour effectuée, les événements gérant les clics sur les flèches ne fonctionnent plus (sachant que le code html des flèches n'a lui pas été modifié). Après de nombreuses recherches sur de nombreux forums j'en suis arrivé à utiliser la fonction live pour gérer le clic. Cependant rien n'y fait, ça ne veut pas marcher! Étant à la base développeur en PHP, je viens vous demandez un peu de votre temps pour m'aider.
Voici le code html de la zone concernée :
Et voici mon code javascript (je ne mets que pour la flèche du haut) :
Les coordonnées x et y sont mise au hasard pour les test.
Je vous remercie d'avance pour votre aide.
Modifié par squems (08 May 2009 - 15:02)
Voila mon problème. Je me sers de jQuery pour mettre à jour une carte de jeu, après récupération de données via une requête ajax. Une fois les données récupérées, je modifie la classe des div de ma carte. Cette mise à jour s'effectue lors d'un déplacement sur la carte, c'est à dire lors du clic de l'utilisateur sur une des flèches de déplacement affichées à l'écran.
Cependant une fois la mise à jour effectuée, les événements gérant les clics sur les flèches ne fonctionnent plus (sachant que le code html des flèches n'a lui pas été modifié). Après de nombreuses recherches sur de nombreux forums j'en suis arrivé à utiliser la fonction live pour gérer le clic. Cependant rien n'y fait, ça ne veut pas marcher! Étant à la base développeur en PHP, je viens vous demandez un peu de votre temps pour m'aider.
Voici le code html de la zone concernée :
<div class="map">
<div class="emplacement unknown x0y0" id="x0y0"></div>
<div class="emplacement unknown x0y1" id="x0y1"></div>
<div class="emplacement unknown x0y2" id="x0y2"></div>
<div class="emplacement unknown x0y3" id="x0y3"></div>
<div class="emplacement unknown x0y4" id="x0y4"></div>
<div class="emplacement unknown x1y0" id="x1y0"></div>
<div class="emplacement unknown x1y1" id="x1y1"></div>
<div class="emplacement unknown x1y2" id="x1y2"></div>
<div class="emplacement unknown x1y3" id="x1y3"></div>
<div class="emplacement unknown x1y4" id="x1y4"></div>
<div class="emplacement unknown x2y0" id="x2y0"></div>
<div class="emplacement waterGrassTopHorizontal x2y1" id="x2y1"></div>
<div class="emplacement water x2y2" id="x2y2"></div>
<div class="emplacement water x2y3" id="x2y3"></div>
<div class="emplacement waterGrassBottomHorizontal x2y4" id="x2y4"></div>
<div class="emplacement unknown x3y0" id="x3y0"></div>
<div class="emplacement waterGrassRightTop x3y1" id="x3y1"></div>
<div class="emplacement waterGrassRightVertical x3y2" id="x3y2"></div>
<div class="emplacement waterGrassRightVertical x3y3" id="x3y3"></div>
<div class="emplacement waterGrassRightBottom x3y4" id="x3y4"></div>
<div class="emplacement unknown x4y0" id="x4y0"></div>
<div class="emplacement unknown x4y1" id="x4y1"></div>
<div class="emplacement grass x4y2" id="x4y2"></div>
<div class="emplacement unknown x4y3" id="x4y3"></div>
<div class="emplacement unknown x4y4" id="x4y4"></div>
</div>
<p>Je teste</p>
<div class="arrowTop"></div>
<div class="arrowBottom"></div>
<div class="arrowRight"></div>
<div class="arrowLeft"></div>
Et voici mon code javascript (je ne mets que pour la flèche du haut) :
$('.arrowTop').live('click',
function(){
$.ajax(
{
url: "map.php?x=50&y=41",
dataType: "xml",
cache: false,
success: function(xml){
$.types = $(xml).find('return').text().split(',');
$('#x0y0').removeClass().addClass('emplacement '+$.types[0]+' x0y0');
$('#x0y1').removeClass().addClass('emplacement '+$.types[1]+' x0y1');
$('#x0y2').removeClass().addClass('emplacement '+$.types[2]+' x0y2');
$('#x0y3').removeClass().addClass('emplacement '+$.types[3]+' x0y3');
$('#x0y4').removeClass().addClass('emplacement '+$.types[4]+' x0y4');
$('#x1y0').removeClass().addClass('emplacement '+$.types[5]+' x1y0');
$('#x1y1').removeClass().addClass('emplacement '+$.types[6]+' x1y1');
$('#x1y2').removeClass().addClass('emplacement '+$.types[7]+' x1y2');
$('#x1y3').removeClass().addClass('emplacement '+$.types[8]+' x1y3');
$('#x1y4').removeClass().addClass('emplacement '+$.types[9]+' x1y4');
$('#x2y0').removeClass().addClass('emplacement '+$.types[10]+' x2y0');
$('#x2y1').removeClass().addClass('emplacement '+$.types[11]+' x2y1');
$('#x2y2').removeClass().addClass('emplacement '+$.types[12]+' x2y2');
$('#x2y3').removeClass().addClass('emplacement '+$.types[13]+' x2y3');
$('#x2y4').removeClass().addClass('emplacement '+$.types[14]+' x2y4');
$('#x3y0').removeClass().addClass('emplacement '+$.types[15]+' x3y0');
$('#x3y1').removeClass().addClass('emplacement '+$.types[16]+' x3y1');
$('#x3y2').removeClass().addClass('emplacement '+$.types[17]+' x3y2');
$('#x3y3').removeClass().addClass('emplacement '+$.types[18]+' x3y3');
$('#x3y4').removeClass().addClass('emplacement '+$.types[19]+' x3y4');
$('#x4y0').removeClass().addClass('emplacement '+$.types[20]+' x4y0');
$('#x4y1').removeClass().addClass('emplacement '+$.types[21]+' x4y1');
$('#x4y2').removeClass().addClass('emplacement '+$.types[22]+' x4y2');
$('#x4y3').removeClass().addClass('emplacement '+$.types[23]+' x4y3');
$('#x4y4').removeClass().addClass('emplacement '+$.types[24]+' x4y4');
}
}
);
return false;
}
);
Les coordonnées x et y sont mise au hasard pour les test.
Je vous remercie d'avance pour votre aide.
Modifié par squems (08 May 2009 - 15:02)