Annuler event clic sur le parent sur clic sur element enfant
Bonjour à tous et bonnes fêtes de fin d'année!
Je commence en JQuery (et en plus je suis limité à la version 1.10.2 pour des raisons d'infra) et je me retrouve avec un problème qui me rend chèvre...
J'ai un DIV d'entête sur lequel je peux cliquer pour ouvrir ou fermer la section en dessous et sur ce DIV d'entête, j'ai rajouté un img sur lequel je clic pour lancer une fonction Js ouvrant un popup.
Code:
1 2 3 4 5 6 7 8 9
| <div id="CollapsiblePanel_SiteGeo_<%=nb_site_geo%>" class="CollapsiblePanel">
<div id="CollapsiblePanelTab_SiteGeo_<%=nb_site_geo%>" class="CollapsiblePanelTab_SiteGeo_detail" tabindex="0" style="font-size:12px;">
<table width="100%">
<tr>
<td><img src="../images/fleche_coudee_b.png" height="8" /><%=nb_site_geo%> - <%=Res_site_geo(1)%> <img src="../images/folder.png" height="20" onclick="lance_explorateur_sitegeo('<%=Res_site_geo(1)%>', '<%=nb_site_geo%>', event);" />
</td>
</tr>
</table>
</div> |
Le problème c'est que quand je clic sur mon img, l'event se propage jusqu'au DIV d'entête et ouvre ou ferme le div du dessous en même temps.
J'ai donc essayé de bloquer la propagation par défaut (ça ça fonctionne) mais par contre une fois le popup ouvert, je ne peux plus ouvrir ou fermer la section du dessous en cliquant sur le div d'entête!
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| function lance_explorateur_sitegeo(valeur, nb_site_geo, e) {
$("#CollapsiblePanelTab_SiteGeo_"+nb_site_geo).unbind();
$("#CollapsiblePanelTab_SiteGeo_"+nb_site_geo).click(function(e){
e.stopImmediatePropagation();
});
//ouverture du popup
$("#CollapsiblePanelTab_SiteGeo_"+nb_site_geo).bind("click", function() {
$("#Panel_SiteGeo_"+nb_site_geo).slideToggle( "fast" );
});
} |
Une idée ou une autre approche à me proposer ? (autre que de déplacer l'ouverture / fermeture du DIV ailleurs que sur le DIV d'entête ^^)
Merci d'avance!