10-05-2010, 02:42 PM
(Modification du message : 10-05-2010, 11:27 PM par Sephi-Chan.)
Bonjour,
J'ai un souci avec la propagation d'événements.
J'ai une carte avec des territoires (ce sont des balises div avec une classe territory) et, lorsque l'on clique sur l'un d'eux, je crées des marques d'interactions (visuellement, des flèches qui pointent vers les territoires voisins, d'une couleur verte si le territoire pointé est allié, rouge sinon).
Mon but est de lancer un événement quand on clique sur l'une de ses marques. Ça fonctionne bien. Le problème, c'est que le clic est propagé à l'élément territory, ce que je ne souhaite pas faire. Le problème, c'est que je n'arrive pas à empêcher cette propagation (avec event.stopPropagation(), ou même return false).
Voici le HTML :
Et le Javascript :
Pourquoi le click est-il propagé au territoire ?
Merci d'avance et bonne journée !
Sephi-Chan
J'ai un souci avec la propagation d'événements.
J'ai une carte avec des territoires (ce sont des balises div avec une classe territory) et, lorsque l'on clique sur l'un d'eux, je crées des marques d'interactions (visuellement, des flèches qui pointent vers les territoires voisins, d'une couleur verte si le territoire pointé est allié, rouge sinon).
Mon but est de lancer un événement quand on clique sur l'une de ses marques. Ça fonctionne bien. Le problème, c'est que le clic est propagé à l'élément territory, ce que je ne souhaite pas faire. Le problème, c'est que je n'arrive pas à empêcher cette propagation (avec event.stopPropagation(), ou même return false).
Voici le HTML :
<div class="territory" id="territory-france" data-identifier="france" data-name="France" data-owner="blue" data-refresh="yes"
data-territory-url="http://bugspirit.dev:8080/games/2492ef102c70012d5888549a20d084ed/territories/5">
<div class="interaction-mark interaction-mark-ally" id="interaction-mark-11"></div>
<div class="interaction-mark interaction-mark-enemy" id="interaction-mark-12"></div>
<div class="interaction-mark interaction-mark-enemy" id="interaction-mark-13"></div>
<div class="interaction-mark interaction-mark-enemy" id="interaction-mark-14"></div>
<div class="interaction-mark interaction-mark-ally" id="interaction-mark-15"></div>
</div>
Et le Javascript :
$('.territory').bind('click', function(event){
log('Territory "' + $(this).attr('data-name') + '" was clicked!');
$.ajax({
url: $(this).attr('data-territory-url') + '.js',
type: 'GET',
dataType: 'script'
});
});
$('.interaction-mark').live('click', function(event){
log("Interaction mark clicked!");
event.stopPropagation();
});
Pourquoi le click est-il propagé au territoire ?
Merci d'avance et bonne journée !
Sephi-Chan