anton: Div Position auslesen, Walter Zorn

Hallo zusammen,

zu verschieben von divs verwende ich die lib von Walter Zorn, Anwendung Bsp.:

http://www.walterzorn.com/dragdrop/demos/dnd_snapandsort.htm

Beim verschieben der Divs benötige ich die alte und die neue Position des Div, die neue Postion kann ich über die Variable "var i = (y-margTop)/dy;" auslesen, leider weiß ich nicht wie ich an die alte Position des gerade verschobenen Divs kommen, jemand eine Idess?

Hier die Funktion :
[code=javascript]
function my_DropFunc()
{
    // Calculate the snap position which is closest to the drop coordinates
    var y = dd.obj.y+dy/2;
    y      = Math.max(margTop, Math.min(y - (y-margTop)%dy, margTop + (aElts.length-1)*dy));
    //var OldPos = Math.max(posOld, Math.min(y - (y-posOld)%dy, posOld + (aElts.length-1)*dy));
    // Index of the new position within the spatial order of all items
    var i = (y-margTop)/dy; // <--------- die neue Position

// Interchange the positions of the two items
    aElts[i].moveTo(100, posOld);

// Let the dropped item snap to position
    dd.obj.moveTo(100, y);

// Update the array according to the changed succession of items
    aElts[(posOld-margTop)/dy] = aElts[i];
    aElts[i] = dd.obj;

}
[/code]
Grüße anton

  1. Hallo anton,

    Beim verschieben der Divs benötige ich die alte und die neue Position des Div, die neue Postion kann ich über die Variable "var i = (y-margTop)/dy;" auslesen, leider weiß ich nicht wie ich an die alte Position des gerade verschobenen Divs kommen, jemand eine Idess?

    Ohne mich jetzt irgendwie mit deinen Libs auseinanderzusetzen, was häst du davon, die koordinaten nach der letzten Verschiebung zu speichern und wieder darauf zuzugreifen?

    Jonathan

    1. Hallo Jonathan

      Ohne mich jetzt irgendwie mit deinen Libs auseinanderzusetzen, was häst du davon, die koordinaten nach der letzten Verschiebung zu speichern und wieder darauf zuzugreifen?

      nein, den die Positin muss in eine DB gespeichert werden.
      Diese Reihenfolge wird auf eine ander Seite wider verwendet um die divs zu zeigen.

      Grüße anton

      1. nein, den die Positin muss in eine DB gespeichert werden.

        Wieso DB? Ich denke du redest vom verschieben mit JS?

        Der Vorschlag von Jonathan dürfte die einzige Lösung für dein Problem sein, wenn wir es richtig verstanden haben.

        Struppi.

        1. hallo,

          Wieso DB? Ich denke du redest vom verschieben mit JS?

          Der Vorschlag von Jonathan dürfte die einzige Lösung für dein Problem sein, wenn wir es richtig verstanden haben.

          diese Seite, die ich bauen, ist eine Verwaltungsseite, dort legt der User die Reihenfolge der Elemente festlegen.
          Die neue Position, wie oben schon erwähnt, lesse ich über die "i" Varialbe aus, es fehlt mir leider noch die alte Position des verschobenen Divs.
          Dann kann ich sie über ajax in die DB speichern.
          Das zu Verständnis.

          grüße anton

          1. hallo,

            Wieso DB? Ich denke du redest vom verschieben mit JS?

            Der Vorschlag von Jonathan dürfte die einzige Lösung für dein Problem sein, wenn wir es richtig verstanden haben.
            Die neue Position, wie oben schon erwähnt, lesse ich über die "i" Varialbe aus, es fehlt mir leider noch die alte Position des verschobenen Divs.

            Was meinst du damit?
            Die alte Position die du in der DB gespeichert hast oder die auf der Seite?
            Wenn du das zweite meinst, dann ist der Weg den du bereits gesagt bekommen hast, der einzige.

            Dann kann ich sie über ajax in die DB speichern.

            Wenn ich das richtig verstanden habe, ist das ja nicht dein Problem, du willst die Position des Elementes bevor du es dragst, oder nicht?
            Auf der Beispielseite die du uns gezeigt hast, steht auch bereits wie das geht.

            Struppi.

      2. Hallo anton,

        nein, den die Positin muss in eine DB gespeichert werden.
        Diese Reihenfolge wird auf eine ander Seite wider verwendet um die divs zu zeigen.

        Wenn dus in ner DB speichern willst, musst dus an den Server senden. Speichere wie schon vorgschlagen die Variable im JS und schicke sie dan über ein Formular, Ajax oder was auch immer an deinen Server, der die dann in eine DB schreibt.

        Jonathan