Partage
  • Partager sur Facebook
  • Partager sur Twitter

Evènement arrêté pendant le traitement

prototype.js

    23 mars 2011 à 23:14:43

    Hello !

    J'utilise prototype.js, et surtout ceci : Event.observe(document,'keydown',key);

    Ici, lorsque l'utilisateur appuie sur touche, il lance la fonction key.
    Mais si l'utilisateur reste appuyé, la fonction key tournera en boucle, autant de temps qu'il restera appuyé.

    Ma question comment bloquer le prochain évènement tant que le 1er n'est pas terminé ?
    • Partager sur Facebook
    • Partager sur Twitter
      23 mars 2011 à 23:39:49

      var down = false;
      function key(e) {
          if(!down) {
              down = true;
              /* ... */
          }
      }
      Event.observe(document,'keydown',key);
      Event.observe(document,'keyup',function(e) {
          down = false;
      });
      


      Un truc comme ça ?
      • Partager sur Facebook
      • Partager sur Twitter
        24 mars 2011 à 0:12:17

        Je pense pas, car si l'utilisateur ne relache pas la touche, l'evenement keyup ne se fera pas ;)
        • Partager sur Facebook
        • Partager sur Twitter
          24 mars 2011 à 1:14:37

          Ouaip, mais le keydown ne sera exécuté qu'une seule fois grâce à la condition...
          • Partager sur Facebook
          • Partager sur Twitter
            24 mars 2011 à 15:05:14

            Non, la fonction ne se lance même plus ;)
            • Partager sur Facebook
            • Partager sur Twitter
              24 mars 2011 à 19:58:29

              Comment expliques-tu que chez moi ça fonctionne parfaitement ?

              <script type="text/javascript" src="prototype.js"></script>
              <script type="text/javascript">
              var down = false;
              function key(e) {
                  if(!down) {
                      down = true;
                      $('test').innerHTML += 'plop';
                  }
              }
              Event.observe(document,'keydown',key);
              Event.observe(document,'keyup',function(e) {
                  down = false;
              });
              </script>
              
              <div id="test"></div>
              
              • Partager sur Facebook
              • Partager sur Twitter

              Evènement arrêté pendant le traitement

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown