Bonjour,
Je réalise que mon bout de code ne va pas fonctionner comme je l'ai imaginer.
Grâce a leaftlet, je crée un carte avec des markers.
Vous pouvez voir l'application ici
un marker contient un <i> avec l'icon qui représente le type de la station
Dans mon div, j'ai ajouté une class 'station-43' et
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <div class="leaflet-marker-icon leaflet-div-icon station-43 leaflet-zoom-animated leaflet-interactive" style="margin-left: 0px; margin-top: 0px; transform: translate3d(1989px, 1146px, 0px); z-index: 1146;" title="Jardin" tabindex="0" role="button" aria-describedby="leaflet-tooltip-144"> <i data-station="43" class="fa-solid fa-2xl fa-sun-plant-wilt red"></i> </div>
dans mon i, j'ai ajouté un attibut 'data-station="43"
le "43" correspond à l'ID de la station.
Donc, bien entendu pour chaque marker, cette valeur varie.
Je dois récupérer cette valeur (donc le 43, ou un autre ID en fonction du marker) et je m'arrache les cheveux.
Ce code fonctionne et je l'ai simplifier pour me consacrer à mon besoin
Code jquery : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 marker.bindPopup( bindpop_str, {autoClose: true, closeOnClick: true, closeButton: true, keepInView:true} ).on('popupopen', function(e) { console.log('$(this)', $(this).children()); console.log("D", d); $(this).closest( "i" ).css({"color": "red", "border": "2px solid red"}); })
Ceci
ne fonctionne pas quand je clique sur mon marker. J'essaye de trouver le <i> le plus proche pour lui mettre une couleur mais rien ne se passe.
Code jquery : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $(this).closest( "i" ).css({"color": "red", "border": "2px solid red"});
Est-ce que le closest() chercher l'élément parent le plus proche?
J'ai aussi essayé ceci, sans succès
Code jquery : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $(this).children( "i" ).css({"color": "blue", "border": "2px solid blue"}); $(this).children( "i" ).attr("data-station").css({"color": "blue", "border": "2px solid blue"}); console.log($(this).children( "i" ).attr("data-station"));
Je nage, auriez-vous une piste?





Répondre avec citation




Partager