Reitérer un fonction en javascript à l'infini [Résolu]

Signaler
-
 emma22 -
Hello à tous,
j'ai besoin de votre aide, je voudrais réitérer une fonction à l'infini celle ci contient des ouvertures et des fermetures de popups on click, mais a un moment je supprime un marqueur de la map.. je souhaite après la suppression du marqueur réiterer la fonction..quelle boucle dois je faire? dois je utiliser un continue; un callback, recurse, je suis un peu perdue... pouvez vous m'aider s'il vous plait? Merci d'avance !

3 réponses

Messages postés
1784
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
28 avril 2021
128
bonjour

vois du cote de setTimeout ou setInterval
merci Karamel ! ta methode fonctionne mais je ne veux pas de delai, je voudrais que la fonction se reitere apres la suppression du marqueur mapbox au 3e clic sur un bouton
Messages postés
1784
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
28 avril 2021
128
il faut creer une variable qui s'increment a chaque clic et au bout de trois clic la variable vaudra donc trois et il suffit juste d'ajouter une condition (if) qui controle la valeur de la variable afin d'agir.
Ok merci beaucoup pour ton aide Karamel, je vais essayer...
var counter = 0;
function changeImage1(){
counter++;
var marker1 = document.getElementById('marker1');
var marker1 = new mapboxgl.Marker({
color: '#ff8e0a',
className: 'marker1'
}) // Initialize a new marker
.setLngLat([]) // Marker [lng, lat] coordinates
.setPopup(new mapboxgl.Popup({
offset: 25,
className: 'popup1'
}) // add popups,

button1.onclick = function (){
counter++;
if(counter===2){
if (button1.style.display !== 'none') {
div1.style.display = 'block';
block1.style.display = 'block';
button1.style.display = 'none';
$('#border2,#border3,#border4').prop("disabled", true);
} else {
div1.style.display = 'none';
block1.style.display = 'none';
button1.style.display = 'block';
}
}
div1.onclick = function (){
if (div1.style.display !== 'none') {
div1.style.display = 'none';
block1.style.display = 'none';
button1.style.display = 'block';
$('#border2,#border3,#border4').prop("disabled", false);
} else {
div1.style.display = 'block';
block1.style.display = 'block';
button1.style.display = 'none';
}
}
button1.onclick = function(){
counter++;
if(counter===3){
marker1.remove();
}
}
}
}

ça fonctionne mais je ne sais pas comment revenir au début dois je rajouter --counter; pour revenir au 1er click comment fait on? Merci d'avance
c'est bon j'ai résolu mon problème j'ai rajouté
 button1.addEventListener('click', changeImage1, marker1.remove() );