Partage
  • Partager sur Facebook
  • Partager sur Twitter

"oublier" un évènement

Sujet résolu
14 avril 2021 à 20:08:32

je pensais qu'en faisant ça :

$('#test').click(function(){
        if(isPress){
          isPress=false;
          $('#container').click(function(e){});
        }else{
          isPress=true;
          $('#container').click(function(e){
            posX=chart.xAxis[0].toValue(e.pageX-7);
            console.log(posX);
            if(lineVerif(chart.xAxis[0].plotLinesAndBands,posX)){
              plotLine(posX);
            }else{
              plotLine(posX);
            }
          });
        }
      });

ça allais oublier l'évènement sur #container, mais j'ai beau re appuyer, rien ne change, une fois que je clique une fois sur mon bouton #test, l'évènement du clique sur le #container reste.

  • Partager sur Facebook
  • Partager sur Twitter
14 avril 2021 à 21:39:35

Voici ce qui se passe avec ton code.
Admettons que isPress soit à true par défaut :
1/ Je clique sur #test : isPress est true, donc c'est le code du if qui est exécuté => isPress passe à false et l'événement sur #container est annulé.
2/ Je clique à nouveau sur #test : isPress est cette fois à false, donc c'est le code du else qui s'exécute => isPress repasse à true (ligne 6) et un événement est ajouté sur #container
3/ Je clique à nouveau sur #test : isPress est à true, donc c'est le code du if qui est exécuté...
etc.

En gros, à chaque clic sur #test, isPress passe de true à false ou de false à true. Quand il passe à true, l'événement #container est réinitialisé.

  • Partager sur Facebook
  • Partager sur Twitter

"Commencer est facile, persévérer est un art."

14 avril 2021 à 22:07:15

Oui, j'aimerais qu'il soit réinitialisé, cependant, la ligne 4 s'ajoute à la ligne 7, et non la remplace. Comment faire pour la remplacer ou l'"oublier" ?

update: j'ai trouvé ! il faut utiliser la méthode jquery off()

-
Edité par PierreHervelin1 14 avril 2021 à 22:13:00

  • Partager sur Facebook
  • Partager sur Twitter