Partage
  • Partager sur Facebook
  • Partager sur Twitter

fonction imbriquée

Sujet résolu
    25 février 2009 à 11:56:22

    Bonjour à tous,
    depuis ce matin je sèche durement sur le problème de function javascript imbriquée.

    Sur un onMouseOut je veux avoir une fonction fade (de scriptaculous) puis une fonction qui détruit la div en question quand le fade est fini.

    function suppressionDiv(){ $('info').fade({ duration: 1.0, from: 1, to: 0 }), [$('info').remove()]}
    


    onMouseOut="suppressionDiv(); "
    


    La div info n'est jamais supprimée et le fade ne se fait pas, bizarre? Je dois admettre ne pas être familier avec ce genre de notation en JS. Aucune erreur JS n'est retournée !
    Utilisant le framework prototype j'utilise la notation $ à la place de getElemntById...

    Si qq peut m'aider, d'avance merci!

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      25 février 2009 à 14:48:57

      Il n'y a pas de majuscules à onmouseout. Mais ça résoudra pas ton problème; malheureusement j'avoue ne pas comprendre grand chose à ton script. T'es sûr que tu as bien renseigné l'attribut id ?
      • Partager sur Facebook
      • Partager sur Twitter
        25 février 2009 à 20:46:09

        Citation : dysmann

        Il n'y a pas de majuscules à onmouseout. Mais ça résoudra pas ton problème; malheureusement j'avoue ne pas comprendre grand chose à ton script. T'es sûr que tu as bien renseigné l'attribut id ?



        Mon sript écrit autrement

        function suppressionDiv(){ document.getElementById('info').fade({ duration: 1.0, from: 1, to: 0 }), [document.getElementById('info').remove()]}
        


        le lien vers la fonction fade de scritaculous

        • Partager sur Facebook
        • Partager sur Twitter
          25 février 2009 à 20:48:59

          Euh, peut être qu'avec :
          function suppressionDiv(){ 
          document.getElementById('info').fade({ duration: 1.0, from: 1, to: 0 }); 
          document.getElementById('info').remove();
          }
          
          • Partager sur Facebook
          • Partager sur Twitter
            25 février 2009 à 20:55:25

            Citation : Timot

            Euh, peut être qu'avec :

            function suppressionDiv(){ 
            document.getElementById('info').fade({ duration: 1.0, from: 1, to: 0 }); 
            document.getElementById('info').remove();
            }
            


            Merci pour cette réponse Timot, mais j'avais déjà essayer ceci et ce qui se passe est que remove est exécuté avant que le fade ne soit fini.

            Ces 2 fonction doivent être imbriquées, cad que le remove ne doit démarrer qu'à la fin du fade.

            D'autres pistes ?


            • Partager sur Facebook
            • Partager sur Twitter
              25 février 2009 à 21:05:35

              Beh essaye avec ça :
              function suppressionDiv(){ 
              document.getElementById('info').fade({ duration: 1.0, from: 1, to: 0 }); 
              setTimeout(function() {document.getElementById('info').remove()}, 1000);
              }
              
              • Partager sur Facebook
              • Partager sur Twitter
                25 février 2009 à 21:35:44

                Citation : Timot

                Beh essaye avec ça :

                function suppressionDiv(){ 
                document.getElementById('info').fade({ duration: 1.0, from: 1, to: 0 }); 
                setTimeout(function() {document.getElementById('info').remove()}, 1000);
                }
                


                Alors là il y a de l'idée, et ca fonctionne correctement.

                Merci x 1000

                Mais just pour finir comme le chieur intégral, j'aurai aimé pouvoir faire comme avec mootools mais en JS pur ou prototype :
                Code mootols ==> lien
                monEffet.start({ width:'200px' }).chain(
                  function() {
                    // Etape 1
                    legend.setText("-] Etape 1 ...");
                    monEffet.start({ 'background-color':'#BF2', color:'#000'});
                  }
                ). ....
                


                MaJ
                Cette solution prototype/scriptaculous fonctionne parfaitement (lien)
                $('info').fade({ duration: 1.0, afterFinish: function(){$('info').remove()}})
                


                • Partager sur Facebook
                • Partager sur Twitter

                fonction imbriquée

                × 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