Bessere Lösung in der Funktion (Prototype & scriptaculous)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bessere Lösung in der Funktion (Prototype & scriptaculous)

    Hallo zusammen

    Folgende Beispiel Situation:

    Ich habe eine Funktion die per Scriptaculous Effect ein Element ausblenden soll, es anschließend löschen soll und die Liste der Elemente, worin das nun gelöschte enthalten war, neu einlesen soll:

    Code:
    myfunction: function(element) {
      new Effect.BlindUp(element);
      element.remove.delay(1);
      readList.delay(1);
    }
    Was mich daran stört ist, dass alle Funktionen, die nach dem Effekt kommen mit 1 Sekunde Verzögerung aufgerufen werden müssen, da sonst der Effekt noch nicht beendet sein würde und das Element somit nicht per Effekt ausgeblendet, sondern einfach gelöscht würde.

    In der Praxis habe ich natürlich nicht nur zwei weitere Anweisungen danach, sondern einige mehr.

    Hat jemand eine Idee, wie man das Problem des "Zwangsverzögerns" umgehen kann?

    Ich finde es auch unübersichtlich alles in eine andere Funktion zu schreiben, die dann verzögert aufgerufen wird.

    Danke für die kreativen Ideen

    Click
    Du kannst jeden Tag wie deinen letzten leben, du musst nur jeden Tag das Gleiche tun.

    Denk' mal drüber nach!

  • #2
    Kannst du bei diesem Framework nicht ein ganzes Objekt als Parameter übergeben, darunter auch Funktionen wie onfinished oder so? Schau dir mal das Manual an.

    Kommentar


    • #3
      Ne, gibt's nicht.

      Aber wenns danach geht könnt ich ja, wie geschrieben auch die Funktion mit delay(1) aufrufen, weil ich ja weiß, wie lange der Effekt braucht.

      Aber das in eine andere Funktion zu bstecken wollte ich ja eigentlich vermeiden.

      Das Problem wäre ja mit einer sleep, wait, wie auch immer man sie nennen könnte Methode behoben, sodass man nach dem "new Effect..." einfach ein "sleep(1)" ausführen könnte. Aber diese Mehtode gibt es ja mMn leider nicht in JS oder täusche ich mich?
      Du kannst jeden Tag wie deinen letzten leben, du musst nur jeden Tag das Gleiche tun.

      Denk' mal drüber nach!

      Kommentar


      • #4
        Wenn es sie nicht gibt kannst du sie ganz einfach mit dem Prototype-wrapper der Funktion anhängen.
        Ein anderen Programmiersprachen ähnliches "sleep" kannst du ganz einfach selbst herstellen:
        Code:
        function sleep(ms){
         var e = (new Date()).getTime() + ms;
         while(e > (new Date).getTime()){}
        }

        Kommentar


        • #5
          Original geschrieben von Click
          Ne, gibt's nicht.
          afterFinish
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #6
            OffTopic:

            @Unset war schneller und hat es offensichtlich sogar hingekriegt, das neue Wiki zu durchsuchen! Willst du mir verraten, wie das geht? Da war mir das vorherige, das alle 2 Tage down war, noch lieber

            Kommentar


            • #7
              OffTopic:
              Ich wusste einfach noch, wo der Eintrag war
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                OffTopic:

                Jetzt gibt es statt einem Wiki, das regelmäßig down ist, also zwei, die beide weder Navigationsmenü noch Suchfunktion haben? Oder bin ich blöd und übersehe was?
                EDIT: Github ist jetzt auch down, die Tradition wird also auch fortgesetzt

                Kommentar


                • #9
                  Ahh ich hatte wegen dem Callback nur bei den "Combination Effects" geguckt... und da war nochnichmals n Link zu den "Core Effects".
                  Danke auf jeden Fall
                  Du kannst jeden Tag wie deinen letzten leben, du musst nur jeden Tag das Gleiche tun.

                  Denk' mal drüber nach!

                  Kommentar

                  Lädt...
                  X