jrquery arreter la propagation d'un événement

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
saintache
Messages : 1
Enregistré le : 16 avr. 2020, 07:51

jrquery arreter la propagation d'un événement

Message par saintache » 18 avr. 2020, 19:54

Bonjour,

Je n’arrive pas à arrêter la propagation d’événement ou alors cela stoppe tout !

Dans mon document HTML
<div>
<p class="ligdetcarnet">blablabla</p>
<p class="ligdetcarnet">encore une ligne</p>
<p class="ligdetcarnet">et encore une autre</p>
<p class="ligdetcarnet">et ainsi de suite ...blablabla</p>
</div>


Avec le script :
$('.ligdetcarnet').click,(function(){
console.log("click sur detclick");
contenudet=$('.ligdetcarnet').text();
console.log("contenu :" + contenudet);
});

J’ai bien les traces consoles quand je clique sur une des lignes et et dans la variable contenudet le contenu de toutes les lignes bout à bout

Mon objectif : cliquer sur une des lignes pour en récupérer le contenu de la seule ligne que j’ai cliquée


Si je modifie ainsi le script :
$('.ligdetcarnet').click,(function(e){
console.log("click sur detclick");
e.stopPropagation();
e.stopImmediatePropagation();

contenudet=$('.ligdetcarnet').text();

console.log("contenu :" + contenudet);
});

je n’ai jamais rien (aucune trace console) et ceci quelque soit l’endroit où je positionne mes e.stopxxx
En fait dès que j’utilise la forme function(e) plus rien ne se passe (même sans aucune ligne e.stop)

Merci d’avance pour vos avis

Avatar du membre
webmaster
Administrateur du site
Messages : 577
Enregistré le : 28 févr. 2017, 15:19

Re: jrquery arreter la propagation d'un événement

Message par webmaster » 19 avr. 2020, 11:03

Bonjour,

Le fonctionnement actuel n'est pas lié a la propagation du click
mais au fait que tu prends le contenu de toutes les lignes avec contenudet=$('.ligdetcarnet').text();
Il faut prendre le <p> cliqué avec e.currentTarget et donc avoir le contenu cliqué avec :
contenudet=$(e.currentTarget).text();

Cela pourrait aussi fonctionner avec this directement :
contenudet=$(this).text();

voir ici la correction
https://www.toutjavascript.com/user/stop-prop.html
TJS : 25 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

Répondre