Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Script.aculo.us: Drag'n'Drop

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Script.aculo.us: Drag'n'Drop

    ... keine Panik - das geht schon so, wie es soll!! (mach das jetzt seit gestern) Eigentlich sind es zwei simple Fragen, so hoffe ich, die ich nur in der Theorie besprochen haben möchte:

    Bei einem onEnd wird der User für ein Draggable (nennen wir es "drag1") gefragt, ob er das an der Stelle wirklich ablegen möchte - wenn nicht, snappt das Draggable zurück in die Ausgangsposition. Falls er die Anfrage bejaht, platziert sich das Draggable an die Position und kann danach auch nicht mehr verschoben werden (daher die Abfrage). Das geht alles ... wie erwähnt.

    Ich hätte jetzt aber gern, dass ein weiteres Draggable, mit den gleichen Bedingungen erzeugt wird ... sprich: an die leere Stelle von "drag1" (Position onStart) soll das inhaltlich gleiche Draggable (namentlich natürlich anders) erstellt werden, was dann bspw. "drag1_1" heißen würde ... 1 zu n ("drag1_[n]"). Der User soll eine gewisse Anzahl "drag1_[n]" verfügbar gestellt bekommen ...

    Mir reicht hierzu ein "Ja, natürlich geht das" ... "Nein, wird nicht gehen, weil ..."!!

    Die zweite Frage ist schon die Fortsetzung zur möglichen Lösung von oben: Ich will nicht zu Beginn 20 "new Draggable" mit gleicher Aufgabe untereinander schreiben; lässt sich das Object "Draggable" auch aus einem Array bedienen? Ich habe eine 1-n AJAX-Abfrage erstellt, die Infos aus acht Datenbanken (Cluster) holt und zentral nach Eingang darstellt ... lässt sich "Draggable" auf sowas schematisch ein, dass ich - ähnlich wie beim AJAX - mit einem Array arbeiten kann?

    Danke.

  • #2
    Zu Frage 1 sage ich jetzt einfach mal: Ja das geht. Auch wenn ich nicht ganz verstanden habe was du da machen möchtest
    Aber klar kannst du dynamisch Elemente anlegen und die draggable machen....

    Was meinst du mit "aus einem Array bedienen"? Natürlich kannst du Referenzen auf Draggables in einem Array ablegen, aber ich fürchte das meinst du nicht?

    Kommentar


    • #3
      Zu Frage 1: drag1 steht oben links bspw., wird anderweitig gedroppt. Der User wird gefragt "so richtig?", was er bejaht (da sonst drag1 zurück auf Startposition geht; snap). Nun soll für die leere Stelle links oben von ursprünglich drag1 ein drag1_1 neu angeboten werden ...

      Bildlich gesprochen: drag1 ist ein A ... jetzt ziehst Du das A irgendwo auf den Screen und legst es ab. Nun soll erneut ein A zur Verfügung stehen ... vielleicht ist es so einleuchtender.

      Zum zweiten Teil: Ich will nicht die Referenzen vom Draggable im Array haben, sondern das komplette Draggable mit seinen onEnd, snap, ghosting usw. Also alle möglichen Draggables über ein Array selbst nochmal ansprechen ...

      Kommentar


      • #4
        Zitat von Curanai Beitrag anzeigen
        Zu Frage 1: drag1 steht oben links bspw., wird anderweitig gedroppt. Der User wird gefragt "so richtig?", was er bejaht (da sonst drag1 zurück auf Startposition geht; snap). Nun soll für die leere Stelle links oben von ursprünglich drag1 ein drag1_1 neu angeboten werden ...

        Bildlich gesprochen: drag1 ist ein A ... jetzt ziehst Du das A irgendwo auf den Screen und legst es ab. Nun soll erneut ein A zur Verfügung stehen ... vielleicht ist es so einleuchtender.
        Mh, ja so hab ich mir das schon vorgestellt.

        Zum zweiten Teil: Ich will nicht die Referenzen vom Draggable im Array haben, sondern das komplette Draggable mit seinen onEnd, snap, ghosting usw. Also alle möglichen Draggables über ein Array selbst nochmal ansprechen ...
        Ja. Also möchtest du eine Referenz auf ein Draggable in ein Array speichern
        Ich versteh's wirklich nicht. Ich kann mir momentan zwei Sachen vorstellen die du meinen könntest.
        Du möchtest deine Draggables einfach in ein Array legen:
        Code:
        var arr = new Array();
        var drag2 = new Draggable('asd', {...});
        arr.push( new Draggable('xyz', {ghosting: true, revert: false, onStart:...});
        arr.push( drag2 );
        arr[1].destroy()
        oder du möchtest verschiedene Optionen in ein Array ablegen und darauf dann neue Draggables erzeugen:
        Code:
        var draggableOptions = [
        	{element: 'xyz', ghosting: true, onStart: function(){...}},
        	{element: myDiv, ghosting: false, revert: true}
        ];
        draggableOptions.each(function(it){
          new Draggable(it.element, it);
        });
        Beides geht selbstverfreilich...

        Kommentar


        • #5
          Mir geht es um Variante 1 ... damit ich "drag2", "drag3" usw. darin habe ...

          Öhm ... erklär mir aber bitte noch, warum Du das gemacht hast ...
          Code:
          arr.push( new Draggable('xyz', {ghosting: true, revert: false, onStart:...});
          arr.push( drag2 );
          Denn Variante 2 (arr.push( drag2 ) hätte den Charme, den ich für die Übersichtlichkeit bräuchte ... der Rest wäre dann eigentlichen ein Klacks ...

          Ich muss mir dann nur noch einen Draggable-Builder bei Bedarf schnitzen und dann ist es auch zu 50 % fertig.

          Kommentar


          • #6
            Zitat von Curanai Beitrag anzeigen
            Mir geht es um Variante 1 ... damit ich "drag2", "drag3" usw. darin habe ...
            Ich fürchte wir reden immernoch aneinander vorbei.

            Öhm ... erklär mir aber bitte noch, warum Du das gemacht hast ...
            Code:
            arr.push( new Draggable('xyz', {ghosting: true, revert: false, onStart:...});
            arr.push( drag2 );
            Denn Variante 2 (arr.push( drag2 ) hätte den Charme, den ich für die Übersichtlichkeit bräuchte ... der Rest wäre dann eigentlichen ein Klacks ...
            Ich hab das nur gemacht um zu zeigen, dass du selbstverständlich Draggables direkt in einem Array ablegen kannst und dazu habe ich einfach zwei Varianten gezeigt. Das "direkte" ablegen und die Variante bei der du das Draggable nun einmal via der Variable drag2 und arr[1] ansprechen kannst.

            "Variante 2" macht dabei aber genau das gleiche wie Variante eins und ich sehe nicht was daran übersichtlicher sein soll?

            Kommentar


            • #7
              Sinnwahrend hast Du recht mit abgelegten Options, allerdings hätte ich lieber das komplette Draggable "beisammen", um es eben wirklich aus dem Geschehen zu entfernen - und das möglichst nur an einer Stelle.

              Variante 2 von Dir baut mir alle Draggables zusammen bei bspw. Seitenaufruf ... jetzt und aktuell meines Wissensstandes, mit dem was ich da eigentlich tue und vorhabe, ist für mich Variante 1 bequemer mit der späteren Kommunikation zwischen Client und Server. Es kommen neue, es sollen welche entfernt werden ... und explizit zur Entwicklung ist für mich eine Ausgabe eines Arrays "hübscher".

              Wenn es fertig ist (was noch ein wenig dauern wird), geb ich gern ein paar Screener etc. raus ...

              Kommentar


              • #8
                Ich hab' zwar immernoch nicht genau verstanden was jetzt eigentlich dein Problem war/ist, aber: Wenn ich dir trotzdem irgendwie helfen konnte ist das ja auch toll

                Kommentar


                • #9
                  das nennt man Hilfe zur selbst Hilfe..

                  Kommentar


                  • #10
                    Genau ... ich will keine fertigen Lösungen ... selbst ist der Mann. ^^ (nein, wer bei mir eine Scheibe abschneidet, bekommt 'nen Termin beim ambulanten Chirurgen)

                    So macht mir (!) das viel mehr Spaß als "kannst mal gucken und mach mal" ... außer gegen Bezahlung. Ich habe es mir ja schon für eine multiple Ajax-Anfrage sinngem. auch so gebastelt, aber bevor ich da jetzt wieder "try'n'error" ins Blaue baue, kann man vorher ja eine Theorie vorstellen ... "konzeptionelles Arbeiten" also.

                    Danke auf jeden Fall.

                    Kommentar

                    Lädt...
                    X